PHP Recursive Menüfunktion

Ich habe eine sehr ähnliche Situation wie dieser Beitrag

PHP: verschachteltes Menü mit rekursiver Funktion, nur einige Knoten erweitern (nicht den gesamten Baum)

und ich brauche etwas Hilfe ...

Hier ist der (teilweise) Inhalt meiner $ menuJSONArray-Variablen (die beim Aufrufen der Funktion verwendet wird):

    Array
(
[0] => Array
    (
        [Menu_IDX] => 1
        [Order] => 1
        [Name] => History
        [Parent] => 
        [Path] => History
        [Link] => 
    )

[1] => Array
    (
        [Menu_IDX] => 2
        [Order] => 25
        [Name] => Review
        [Parent] => 
        [Path] => Review
        [Link] => Review
    )

[2] => Array
    (
        [Menu_IDX] => 3
        [Order] => 35
        [Name] => Past Medical History
        [Parent] => 
        [Path] => Past Medical History
        [Link] => Past Medical History
    )
 [3] => Array
    (
        [Menu_IDX] => 4
        [Order] => 45
        [Name] => Item 1
        [Parent] => 0
        [Path] => Item 1
        [Link] => Item 1
    )
 [4] => Array
    (
        [Menu_IDX] => 5
        [Order] => 55
        [Name] => Item 2
        [Parent] => 0
        [Path] => Item 2
        [Link] => Item 2
    )
 [5] => Array
    (
        [Menu_IDX] => 6
        [Order] => 65
        [Name] => Item 3
        [Parent] => 0
        [Path] => Item 3
        [Link] => Item 3
    )
)

und so weiter...

Ich benutze die unten stehende Funktion, aber ich bleibe beim ersten Element in der Schleife stecken. Brauche wirklich Hilfe, um diese Funktion in mein Gehirn einzubinden. Vielen Dank im Voraus, diese Community rockt !!

///RECURSIVE MENU
function recursive($parent, $array) {
$has_children = false; //set value of has children to false by default
foreach($array as $key => $value) {  //loop through the array as key-value pairs
    if ($value['Parent'] == $parent) {  //if the value of Parent field is equal to parent variable   
        if ($has_children === false && $parent) {  //if children is false but parent is not null, this is a sub item
            $has_children = true;  //children is true
            echo '<ul>' ."\n";  //create parent menu ul
        } //otherwise just create the item
        echo '<li>' . "\n";  //create li for parent menu item
        echo '<a href="'.$value['Path'].'">' . $value['Name'] . '</a>' . " \n";  //create link for menu item
            recursive($key, $array); //create sub menu
        echo "</li>\n"; //end parent menu item
    }
}
if ($has_children === true && $parent) echo "</ul>\n"; //end parent menu
}

?>
<?php echo recursive(0, $menuJSONArray); ?></ul>

Als Gegenleistung bekomme ich:

<ul>



<li>
<a href="History">History</a> 
<li>
<a href="History">History</a> 
<li>
<a href="History">History</a> 
<li>
<a href="History">History</a> 
<li>
<a href="History">History</a> 
<li>
<a href="History">History</a>

Kann nicht scheinen, aus dieser Schleife herauszukommen. Vielen Dank!!

P.S. Ich befasse mich nicht mit dem Einstürzen des Baumes usw. aus dem referenzierten Beitrag, da ich das mit jquery und css behandeln werde. Ich kann die korrekte Ausgabe der Menüsyntax gerade nicht erhalten.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage