Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man in PHP eine hierarchische Baumstruktur aus einem flachen Array?
Aufbau einer Baumstruktur aus einem flachen Array in PHP
Problem:
Sie haben ein flaches Array bestehend aus Elementen mit den Feldern „id“ und „parent_id“, wobei jedes Element höchstens ein übergeordnetes Element und null oder mehr untergeordnete Elemente haben darf. Wenn „parent_id“ 0 ist, handelt es sich bei dem Element um ein Element auf Stammebene. Das Ziel besteht darin, dieses flache Array in einen hierarchischen Baum mit Kind-Eltern-Beziehungen umzustrukturieren.
Lösung:
Die bereitgestellte Funktion buildTree() erledigt diese Aufgabe effektiv durch Durchlaufen des Eingabearrays und rekursiven Aufbau der Baumstruktur. Jedes Element im Ausgabebaum enthält seine ID, die übergeordnete ID und ein Array untergeordneter Elemente.
Implementierung:
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; unset($elements[$element['id']]); } } return $branch; }
Das „unset“ Aufruf:
Im obigen Code ist der Aufruf unset() entscheidend für die Aufrechterhaltung der hierarchischen Struktur. Es entfernt verarbeitete Elemente aus dem ursprünglichen Eingabearray und stellt so sicher, dass Elemente nicht im Baum dupliziert werden.
Beispiel:
Bedenken Sie das bereitgestellte Eingabearray:
[_319_] => [...], [_320_] => [...], [_321_] => [...], [_322_] => [...], [_323_] => [...], [_324_] => [...], [_325_] => [...]
Nach der Verarbeitung behält der Ausgabebaum die Eltern-Kind-Beziehungen bei:
[_319_] => [...], [_320_] => [ 'id' => '_320_', 'parent_id' => 0, 'children' => [ [_321_] => [...], [_325_] => [...] ] ], [_323_] => [ 'id' => '_323_', 'parent_id' => 0, 'children' => [ [_324_] => [...] ] ]
Daher ist die Mit der Funktion buildTree() können Sie ein flaches Array von Elementen mit Eltern-Kind-Beziehungen in einen strukturierten hierarchischen Baum in PHP umwandeln.
Das obige ist der detaillierte Inhalt vonWie erstellt man in PHP eine hierarchische Baumstruktur aus einem flachen Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!