tequito
Mitglied
Hallo
Wie kann man einen Array den man einer rekursiven Funktion übergibt wieder ausgeben?
Der Array "$structure" sieht so aus:
Die Funktion die ich mir geschrieben habe sieht so aus:
Gedachte hatte ich nun, leere Kinder ("children") zu entfernen und wenn diese nicht leer sind die Funktion noch einmal aufzurufen für die jeweiligen Kinder-Elemente.
Wieso gibt die Funktion $structure unverändert aus? Wo steckt bei dieser rekursiven Funktion der Fehler?
Wie kann man einen Array den man einer rekursiven Funktion übergibt wieder ausgeben?
Der Array "$structure" sieht so aus:
PHP:
Array
(
[20] => Array
(
[id] => 20
[name] => Root
[children] => Array
(
[30] => Array
(
[id] => 30
[name] => Primaten
[children] => Array
(
[18] => Array
(
[id] => 18
[name] => Halbaffen
[children] => Array()
)
[42] => Array
(
[id] => 42
[name] => Affen
[children] => Array()
)
)
)
)
)
)
Die Funktion die ich mir geschrieben habe sieht so aus:
PHP:
function rekursiv( $array )
{
foreach( $array as $key => $value )
{
if( is_array($value) )
{
if( count( $value['children'] ) > 0 )
{
rekursiv( $value['children'] );
}
else
{
unset( $value['children'] );
}
}
}
return;
}
rekursiv( $structure );
print_r($structure);
Gedachte hatte ich nun, leere Kinder ("children") zu entfernen und wenn diese nicht leer sind die Funktion noch einmal aufzurufen für die jeweiligen Kinder-Elemente.
Wieso gibt die Funktion $structure unverändert aus? Wo steckt bei dieser rekursiven Funktion der Fehler?