Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man rekursiv ein mehrdimensionales Array aus flachen Datenbankergebnissen?
Rekursiver Aufbau eines mehrdimensionalen Arrays aus Datenbankergebnissen
Um hierarchische Datenstrukturen wie Seiten- und Kategoriemenüs aus einem flachen Datenbankergebnis abzurufen kann eine rekursive Funktion verwendet werden. Diese Funktion nimmt das ursprüngliche Array und organisiert es basierend auf Eltern-Kind-Beziehungen in verschachtelten Arrays.
Die Funktion:
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; }
Wie es funktioniert :
Beispielverwendung:
So konvertieren Sie das Beispieldatenbankergebnis mit dieser Funktion in ein mehrdimensionales Array:
$tree = buildTree($rows);
Wobei $rows das ursprüngliche Array der Datenbank ist Ergebnisse.
Ausgabe:
Das resultierende hierarchische Array ähnelt der gewünschten Ausgabe:
Array ( [0] => Array ( [id] => 1 [parent_id] => 0 [title] => Parent Page [children] => Array ( [0] => Array ( [id] => 2 [parent_id] => 1 [title] => Sub Page [children] => Array ( [0] => Array ( [id] => 3 [parent_id] => 1 [title] => Sub Sub Page ) ) ) ) [children] => Array ( [0] => Array ( [id] => 4 [parent_id] => 0 [title] => Another Parent Page [children] => Array ( ) ) ) ) )
Das obige ist der detaillierte Inhalt vonWie erstellt man rekursiv ein mehrdimensionales Array aus flachen Datenbankergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!