Heim >Datenbank >MySQL-Tutorial >Wie kann ich eine rekursive PHP-Funktion erstellen, um einen hierarchischen Menübaum aus einer MySQL-Datenbanktabelle zu generieren?
Echo-Menübaum mit rekursiver Funktion
Um einen hierarchischen Menübaum aus einer Datenbanktabelle mithilfe einer rekursiven Funktion zu generieren, ziehen Sie den folgenden Ansatz in Betracht:
Problem:
Sie möchten eine rekursive Funktion erstellen, die einen hierarchischen Menübaum aus einer MySQL-Datenbank extrahiert.
Situation:
Die Tabelle enthält Spalten:
Erwartete HTML-Ausgabe:
<li><a href="#"><p class="Tier0">Datori</p></a> <ul style="display: block"> <li><a href="#"><p class="Tier1">Cookies</p></a></li> <li><a href="#"><p class="Tier1">Events</p></a></li> <li><a href="#"><p class="Tier1">Forms</p></a></li> <li><a href="#"><p class="Tier1">Games</p></a></li> <li><a href="#"><p class="Tier1">Images</p></a> <ul> <li><a href="#"><p class="Tier2">CSS</p></a></li> <li><a href="#"><p class="Tier2">JavaScript</p></a></li> <li><a href="#"><p class="Tier2">JQuery</p></a></li> </ul> </li> <li><a href="#"><p class="Tier1">Navigations</p></a> <ul> <li><a href="#"><p class="Tier2">CSS</p></a></li> <li><a href="#"><p class="Tier2">JavaScript</p></a></li> <li><a href="#"><p class="Tier2">JQuery</p></a></li> </ul> </li> <li><a href="#"><p class="Tier1">Tabs</p></a></li> </ul> </li> <li><a href="#"><p class="Tier0">Washing Machines</p></a></li>
Vorgeschlagene PHP-Funktion:
<code class="php">function recurse($categories, $parent = null, $level = 0) { $ret = '<ul>'; foreach($categories as $index => $category) { if($category['root'] == $parent) { $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>'; $ret .= $this->recurse($categories, $category['id'], $level+1); $ret .= '</li>'; } } return $ret . '</ul>'; }</code>
Verwendung:
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie kann ich eine rekursive PHP-Funktion erstellen, um einen hierarchischen Menübaum aus einer MySQL-Datenbanktabelle zu generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!