Hi,
ich bins mal wieder, also erstma ich hab nen Programm was mir per POST XML Daten schickt, diese Les ich dann per PHP aus und die sollen dann in ein Array gespeichert werden. Den ersten Teil bekomm cih auch super hin, jedoch den 2. net
Mein Code:
So nun moechte ich eigentlich das das attributeArray mit dem choiceArray verbinden, nur bei jedem Durchlauf in der While schleife ist wieder das jewilige andere array leer, wie kann denn sowas sein?!
Meine Logik ist es eigentlich wenn ich UEBER der while schleife ein array definiere, und es dann in der while schleife beim 1. Durchgang aender, beim 2. aber nicht, das es beim 2. die DAten aus dem 1. Durchgang enthaelt
Hier meine Ausgabe:
Erst sind beide leer
dann ist current(attributeArray) leer, aber im add (choiceArray) ist was drin
danach ist im current(attributeArray ) was drin, und das add (choiceArray) ist leer
Hab ich nen Denkfehler?! Funktioniert das einfach so in PHP net mit den Variablen?
Danke fuer euere Hilfe
ich bins mal wieder, also erstma ich hab nen Programm was mir per POST XML Daten schickt, diese Les ich dann per PHP aus und die sollen dann in ein Array gespeichert werden. Den ersten Teil bekomm cih auch super hin, jedoch den 2. net
Mein Code:
PHP:
function handleChilds( &$element ){
$data = array();
$choiceArray = array();
$attributesArray = array();
$child = $element->first_child();
while ($child) {
if (!($child->is_blank_node()) ) {
switch ($child->node_type()) {
case XML_TEXT_NODE:
echo "XMLtext childvalue: ".$child->node_value() ."\n";
$parent = $child->parent_node();
echo "XMLtext parentnode: ". $parent->node_name() . "\n";
break;
case XML_ELEMENT_NODE:
echo "XMLelement childname: ". $child->node_name() ."\n";
$parent = $child->parent_node();
echo "XMLelement parentname: ". $parent->node_name() ."\n";
if($child->has_attributes() ){
$attributes = $child->attributes();
foreach ($attributes as $attribute) {
echo "name: ". $attribute->name() ."\n";
echo "value: ". $attribute->get_content() ."\n";
if ($attribute->name() == "ID") {
$nextChild = $child->first_child();
if ($nextChild->type == XML_TEXT_NODE){
$choiceArray[$attribute->get_content()] = $nextChild->node_value();
}
} else {
$attributesArray[$attribute->name()] = $attribute->get_content();
}
}
$field = $child->node_name();
if (sizeof($attributesArray) > 0)
$data[$child->node_name()]= $attributesArray;
}
break;
}
if ($child->has_child_nodes()) {
handleChilds($child);
}
}
echo "CURRENT \n";
print_r($attributesArray);
//if(sizeOf($choiceArray) > 0 ) {//&& sizeOf($attributesArray) > 0) {
echo "ADD \n";
print_r($choiceArray);
$result = array_merge($attributesArray, $choiceArray);
// }
$child = $child->next_sibling();
}
// print_r($data);
return $data;
}
So nun moechte ich eigentlich das das attributeArray mit dem choiceArray verbinden, nur bei jedem Durchlauf in der While schleife ist wieder das jewilige andere array leer, wie kann denn sowas sein?!
Meine Logik ist es eigentlich wenn ich UEBER der while schleife ein array definiere, und es dann in der while schleife beim 1. Durchgang aender, beim 2. aber nicht, das es beim 2. die DAten aus dem 1. Durchgang enthaelt
Hier meine Ausgabe:
Code:
CURRENT
Array
(
)
ADD
Array
(
)
CURRENT
Array
(
)
ADD
Array
(
[1] => choose11111111 11111111111111
)
CURRENT
Array
(
[Scenetype] => sc2
[title] => Nu flop stemmen ! ! !
)
ADD
Array
(
)
Erst sind beide leer
dann ist current(attributeArray) leer, aber im add (choiceArray) ist was drin
danach ist im current(attributeArray ) was drin, und das add (choiceArray) ist leer
Hab ich nen Denkfehler?! Funktioniert das einfach so in PHP net mit den Variablen?
Danke fuer euere Hilfe