Erstellen eines verschachtelten Array-Baums aus einer Array-Liste
Sie haben ein Array von Elementen mit Eltern-Kind-Beziehungen und möchten es in umwandeln ein verschachtelter Array-Baum. Hier ist eine effiziente Lösung:
# Create a new array indexed by parent ID $new = []; foreach ($arr as $a) { $new[$a['parentid']][] = $a; } # Start with the root node $tree = createTree($new, [$arr[0]]); # Recursive function to build the tree function createTree(&$list, $parent) { $tree = []; foreach ($parent as $l) { # If there are children, create children tree if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } # Add parent to the tree $tree[] = $l; } return $tree; }
Dieser Algorithmus erstellt effizient einen verschachtelten Array-Baum basierend auf den Eltern-Kind-Beziehungen in Ihrem ursprünglichen Array.
Das obige ist der detaillierte Inhalt vonWie erstellt man effizient einen verschachtelten Array-Baum aus einer flachen Array-Liste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!