Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie erstelle ich ein Baummenü in PHP/MySQL ohne Rekursion?

Mary-Kate Olsen
Freigeben: 2024-10-27 20:45:02
Original
894 Leute haben es durchsucht

How to Create a Tree Menu in PHP/MySQL Without Recursion?

PHP / MySQL Baummenü ohne Rekursion erstellen

Hintergrund:

Das Erstellen eines Baummenüs aus Datenbankdaten kann eine sein gemeinsame Aufgabe. In diesem Artikel wird erläutert, wie Sie aus einem PHP-Array von Seitenobjekten einen Menübaum für eine ungeordnete Liste (UL) erstellen, ohne Rekursion zu verwenden.

Dateneinrichtung:

Ihre Seitenobjekte haben die folgenden Attribute:

  • id
  • Titel
  • parent_id (für Stammseiten auf Null gesetzt)

Funktionsübersicht :

Wir erstellen eine Funktion, die ein Array von Seitenobjekten nimmt und den entsprechenden HTML-UL-Baum generiert.

Hilfsfunktion: has_children()

Diese Funktion prüft, ob eine Seite untergeordnete Seiten hat.

<code class="php">function has_children($rows, $id) {
  foreach ($rows as $row) {
    if ($row['parent_id'] == $id)
      return true;
  }
  return false;
}</code>
Nach dem Login kopieren

Rekursive Build_Menu()-Funktion

Die build_menu()-Funktion iteriert durch das Array und generiert den HTML-UL-Baum. Es verwendet eine Variable $parent, um die aktuelle übergeordnete Seite zu verfolgen.

<code class="php">function build_menu($rows, $parent=0)
{  
  $result = "<ul>";
  foreach ($rows as $row)
  {
    if ($row['parent_id'] == $parent){
      $result.= "<li>{$row['title']}";
      if (has_children($rows,$row['id']))
        $result.= build_menu($rows,$row['id']);
      $result.= "</li>";
    }
  }
  $result.= "</ul>";

  return $result;
}</code>
Nach dem Login kopieren

Ausgabe:

Nach der Übergabe des Arrays von Seitenobjekten an build_menu() Mit der Funktion können Sie den resultierenden HTML-UL-Baum echoen. Die Ausgabe ist eine verschachtelte UL-Menüstruktur, die Ihre Datenbankdaten darstellt.

<code class="php">echo build_menu($menu);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstelle ich ein Baummenü in PHP/MySQL ohne Rekursion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!