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; }
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']]);
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!