hallo
ich sitze mal wieder vor dem gleichen problem wie alle paar monate.
ich möchte rekursiv durch ein mehrdimensionales array laufen und nun die datenstrucktur in ein xml zurückgeben.
insbesondere wenn es in die tiefe geht blicke ich nicht mehr durch welche "schalter" ich in einer klasse benötige um den zu öffneden tag bzw den schliessenden tag nach dem durchlauf von N children einzu setzen.
vielleich habe ich auch zu wenig methoden oder vergesse gewisse dinge bis ich mich dann dabei erwische wie ich die rekursion gar nicht verwende da ich fast für jede ebene eine neu schleife schreibe :-(
mein array sieht wie folgt aus:
<code>$data;
</code>
$data = array(
array('nodeName'=>'music',
'nodeAttr'=>array('id'=>199,'name'=>'FirstName'),
'nodeValues'=>false,
'children'=>array(
array(
'nodeName'=>'album',
'nodeValues'=>false,
'nodeAttr'=>array('albumid'=>'1234',
'albumname'=>'The King'),
'children'=>array(
array(
'nodeName'=>'tracks',
'nodeValues'=>false,
'nodeAttr'=>array('albumid'=>'1234'),
'children'=>array(
'nodeName'=>'track',
'nodeValues'=>array(array('VALUE1',$attributes),
array('VALUE2',$attributes)
),
'nodeAttr'=>$attributes,
'children'=>false
),
),
array(
'nodeName'=>'information',
'nodeValues'=>array(array('artist',$attributes),
array('autor',$attributes),
array('lenght',$attributes),
array('size',$attributes)
),
'nodeAttr'=>array('albumid'=>'1234'),
'children'=>false
),
),
)
)
)
);
ich habe hier insgesammt 3 grund methoden
- den grundbaum und den ersten zweig bauen
- die methode die rekursiv durch das array laufen soll und einen node zurück gibt (hier ist mein problem wenn kinder elemente da sind wie ich kinder und kindes kinder zusammen setzte)
- eine methode die mir die arttibute als string zurück gibt.
vielleicht kann mir ja jemend schritt weise erkläre was ich beachten muss.
lieben gruß
florian