Hey Leute, ich quäle mich jetzt schon seit 4 Tagen mit folgendem Problem und hoffe, dass mir jemand helfen kann.
Ich habe eine Navigation (mit n Untermenüs) in einem Array und möchte den Inhalt rekursiv auslesen und ausgeben. An sich kein Problem. Nur möchte ich die maximale Tiefe bestimmen, was auch nicht schwer ist und ich möchte eine StartID mitgeben, wo mein Problem dann losgeht.
Das heißt, dass ich meiner Funktion eine ParentID mitgeben möchte und sie mir nur die Elemente und Kindelemente usw... ausgeben soll, die unter der ParentID stehen. Das klappt aber leider noch nicht wirklich.
Hier mal der Aufbau des Arrays, welches beim ersten Aufruf an die Funktion foo(...) übergeben wird
Vielen Dank schonmal für eure Hilfe.
Ich hoffe, dass mir jemand helfen kann.
Ich habe eine Navigation (mit n Untermenüs) in einem Array und möchte den Inhalt rekursiv auslesen und ausgeben. An sich kein Problem. Nur möchte ich die maximale Tiefe bestimmen, was auch nicht schwer ist und ich möchte eine StartID mitgeben, wo mein Problem dann losgeht.
Das heißt, dass ich meiner Funktion eine ParentID mitgeben möchte und sie mir nur die Elemente und Kindelemente usw... ausgeben soll, die unter der ParentID stehen. Das klappt aber leider noch nicht wirklich.
PHP-Code:
function foo($menu_array, $elternMenuID = 4, $tiefe = 0, $maxTiefe = -1) {
$tiefe++;
foreach ($menu_array as $eintrag) {
if ($eintrag->elternID() == $elternMenuID) {
//Text ausgeben
}
$unterMenu = $eintrag->unterMenu();
foo($unterMenu, $eintrag->getID(), $tiefe, $maxTiefe);
}
return;
}
PHP-Code:
array(1) {
[0]=>
object(TM_Menu)#3 (7) {
["id":"TM_Menu":private]=>
string(1) "1"
["text":"TM_Menu":private]=>
string(9) "Downloads"
["parent_id":"TM_Menu":private]=>
string(1) "0"
["sub_menu_array":"TM_Menu":private]=>
array(2) {
[0]=>
object(TM_Menu)#2 (7) {
["id":"TM_Menu":private]=>
string(1) "2"
["text":"TM_Menu":private]=>
string(8) "Software"
["parent_id":"TM_Menu":private]=>
string(1) "1"
["sub_menu_array":"TM_Menu":private]=>
array(2) {
[0]=>
object(TM_Menu)#4 (7) {
["id":"TM_Menu":private]=>
string(1) "3"
["text":"TM_Menu":private]=>
string(9) "Programme"
["parent_id":"TM_Menu":private]=>
string(1) "2"
["sub_menu_array":"TM_Menu":private]=>
array(0) {
}
}
[1]=>
object(TM_Menu)#5 (7) {
["id":"TM_Menu":private]=>
string(1) "4"
["text":"TM_Menu":private]=>
string(6) "Spiele"
["parent_id":"TM_Menu":private]=>
string(1) "2"
["sub_menu_array":"TM_Menu":private]=>
array(0) {
}
}
}
}
[1]=>
object(TM_Menu)#6 (7) {
["id":"TM_Menu":private]=>
string(1) "5"
["text":"TM_Menu":private]=>
string(6) "Bilder"
["parent_id":"TM_Menu":private]=>
string(1) "1"
["sub_menu_array":"TM_Menu":private]=>
array(1) {
[0]=>
object(TM_Menu)#7 (7) {
["id":"TM_Menu":private]=>
string(1) "6"
["text":"TM_Menu":private]=>
string(16) "Landschaftsfotos"
["parent_id":"TM_Menu":private]=>
string(1) "5"
["sub_menu_array":"TM_Menu":private]=>
array(0) {
}
}
}
}
}
}
}
Ich hoffe, dass mir jemand helfen kann.
Kommentar