rekursiver funktionsaufruf

südpol

Erfahrenes Mitglied
Hi,

*grml* ich produziere jetzt schon seit einem halben Tag Endlosschleifen. Vielleicht kann mir jemand von euch helfen.

Ich habe eine Tabelle, die in etwa so aussieht:

ID | ist_kind_von_ID | ... weitere felder
1 | 0
2 | 1
3 | 1
4 | 3
5 | 0
...

Ich möchte diese Tabelle nun rekursive durchlaufen um mir einen "array-baum" zu bauen den ich dann in ein include file speichern kann.

Ich möchte also am Schluss ein array haben das in etwas so aussieht:

array( 1 => array
(
[id] => 1
[name] => blablub
[sub_data] => array(
[id] => 2
[name] => blablub
[sub_data] => array( ....

jedes Kind eines Vaterelements soll also in dessen sub_data - array.

Der Anfang ist einfach :-) ich fahre einen query auf meine db und lese alle Datensäte aus, die auf das Root (0) verweisen (in obigem Beispiel id 1 und 5). Das Ergebnis durchlaufe ich dann in einer Schleife und lasse bei jedem durchlauf eine Funktion aufrufen, die prüft ob eine oder mehrere Kindklassen vorhanden ist. Ab hier produziere ich aber immer Endlosschleifen. *heul*

Hat jemand eine Idee wie ich das hin bekomme bzw. wie die Funktion aussehen muss?

P. S. nein, nested Sets machen hier keinen Sinn, Sie können die Ausgabe nicht in multidimensionale array's packen.
P.P.S. nein, die Ausgabe soll auch nicht direkt erfolgen - es muss ein ergebnis - array sein.

Bin für jeden Tipp dankbar!
 
Ok,

ich habs über eine eigene Klasse gelöst, naja noch nicht ganz aber an sich funktioniert es schon... :D

Gruß
 
Zurück