Erstellen von Array-Bäumen aus Array-Listen
In Situationen, in denen Sie eine Liste von Elementen mit hierarchischen Beziehungen haben, wandeln Sie diese in eine baumartige um Struktur kann entscheidend sein. Diese Transformation ist besonders nützlich, wenn es um komplexe Daten geht, die eine effiziente Organisation und Abfrage erfordern.
Betrachten Sie die folgende Liste als Beispiel:
[ {id: 100, parentId: 0, name: 'a'}, {id: 101, parentId: 100, name: 'a'}, {id: 102, parentId: 101, name: 'a'}, {id: 103, parentId: 101, name: 'a'}, ]
Das Ziel besteht darin, diese Liste hierarchisch neu zu organisieren Baumstruktur, in der jedes Element einen Verweis auf sein übergeordnetes Element und seine untergeordneten Elemente (falls vorhanden) hat.
Ein effektiver Ansatz zur Durchführung dieser Konvertierung wird durch den folgenden Code demonstriert Snippet:
<?php $arr = [ ['id' => 100, 'parentId' => 0, 'name' => 'a'], ['id' => 101, 'parentId' => 100, 'name' => 'a'], ['id' => 102, 'parentId' => 101, 'name' => 'a'], ['id' => 103, 'parentId' => 101, 'name' => 'a'], ]; $new = []; foreach ($arr as $a) { $new[$a['parentId']][] = $a; } $tree = createTree($new, [$arr[0]]); print_r($tree); function createTree(&$list, $parent) { $tree = []; foreach ($parent as $k => $l) { if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } $tree[] = $l; } return $tree; }
Dieser Code verarbeitet die Eingabeliste effizient, indem er Elemente basierend auf ihrer parentId gruppiert. Anschließend wird die Baumstruktur rekursiv erstellt und jedes Element mit seinen untergeordneten Elementen gefüllt. Der resultierende Baum bietet eine hierarchische Darstellung der ursprünglichen Liste und erleichtert so die Navigation und das Abrufen von Daten basierend auf Eltern-Kind-Beziehungen.
Das obige ist der detaillierte Inhalt vonWie konvertiert man eine Array-Liste effizient in eine hierarchische Baumstruktur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!