Heim > Backend-Entwicklung > PHP-Tutorial > Wie erstellt man in PHP eine Baumstruktur aus einem flachen Array?

Wie erstellt man in PHP eine Baumstruktur aus einem flachen Array?

Susan Sarandon
Freigeben: 2024-11-26 20:13:16
Original
232 Leute haben es durchsucht

How to Build a Tree Structure from a Flat Array in PHP?

Erstellen Sie einen Baum aus einem flachen Array in PHP

Eine häufige Aufgabe bei der Arbeit mit hierarchischen Datenstrukturen besteht darin, ein flaches Array in ein umzuwandeln baumartige Struktur. Dies kann erreicht werden, indem Eltern-Kind-Beziehungen identifiziert und Elemente entsprechend verschachtelt werden.

Eine Möglichkeit, dies zu erreichen, besteht darin, das Array zu durchlaufen und den parent_id-Wert jedes Elements zu untersuchen. Wenn die parent_id eines Elements Null ist, wird es als Element auf Stammebene betrachtet. Für andere Elemente können ihre parent_ids verwendet werden, um ihre Hierarchie innerhalb des Baums zu bestimmen.

Um das ursprüngliche Array beizubehalten, wird empfohlen, Kopien von Elementen zu erstellen, wenn sie dem Baum hinzugefügt werden. Dies kann mit der Funktion array_values() erreicht werden.

Hier ist eine Beispielimplementierung:

function buildTree(array &$elements, $parentId = 0) {
  $branch = array();

  foreach ($elements as $element) {
    if ($element['parent_id'] == $parentId) {
      $children = buildTree($elements, $element['id']);
      if ($children) {
        $element['children'] = $children;
      }
      $branch[] = $element;
    }
  }

  return $branch;
}
Nach dem Login kopieren

Um doppelte Elemente im resultierenden Baum zu verhindern, ist es wichtig, die verarbeiteten Elemente aus dem zu entfernen ursprüngliches Array. Dies kann durch Hinzufügen einer Codezeile innerhalb der Schleife erfolgen:

unset($elements[$element['id']]);
Nach dem Login kopieren

Mit dieser überarbeiteten Funktion kann das flache Array in eine hierarchische Baumstruktur umgewandelt werden. Das Ergebnis ist ein Array mit verschachtelten untergeordneten Elementen unter jedem übergeordneten Element.

Das obige ist der detaillierte Inhalt vonWie erstellt man in PHP eine Baumstruktur aus einem flachen Array?. 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