Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstellt man rekursiv ein mehrdimensionales Array aus einem flachen Datenbankergebnis?

Wie erstellt man rekursiv ein mehrdimensionales Array aus einem flachen Datenbankergebnis?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-23 10:53:09546Durchsuche

How to Recursively Build a Multidimensional Array from a Flat Database Result?

Rekursive Funktion zum Konstruieren eines mehrdimensionalen Arrays aus Datenbankergebnissen

Problem:

Sie suchen ein rekursive Funktion, die ein Array von Seiten und Kategorien aus einem abgeflachten Datenbankergebnis in ein verschachteltes Array mit strukturierter Hierarchie umwandeln kann Beziehungen.

Lösung:

Die bereitgestellte Lösung bietet einen unkomplizierten und generischen Ansatz:

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;
}

Erklärung:

Der Algorithmus funktioniert wie folgt folgt:

  1. Erste Ausführung (ParentId = 0):

    • Berücksichtigt das gesamte Array von Elementen.
    • Identifiziert Elemente mit parent_id gleich 0 (Wurzelknoten).
    • Rekursive Aufrufe buildTree auf diesen Elementen, um ihre untergeordneten Elemente zu finden.
  2. Rekursive Ausführung (ParentId != 0):

    • Nur ​​berücksichtigt die Elemente, die mit der angegebenen parent_id übereinstimmen.
    • Ruft buildTree rekursiv auf diese Elemente, um ihre untergeordneten Elemente zu finden.
  3. Aufbau der Hierarchie:

    • Elemente, die als untergeordnete Elemente des aktuellen übergeordneten Elements identifiziert werden, sind in ein Array eingebunden.
    • Dieses Array wird der Eigenschaft „children“ des übergeordneten Elements zugewiesen Element.
  4. Rückgabeergebnis:

    • Die rekursiven Aufrufe geben Arrays von untergeordneten Elementen für jede Ebene der Hierarchie zurück.
    • Die Funktion endet mit der Rückgabe eines vollständigen verschachtelten Arrays, das die Hierarchie darstellt Struktur.

Durch die Anwendung dieser Funktion auf Ihr Datenbankergebnis erhalten Sie ein organisiertes Array mit granularen hierarchischen Beziehungen, wie durch Ihre gewünschte Ausgabe veranschaulicht. Dieser Ansatz ist vielseitig und kann sowohl auf Seiten als auch auf Kategorien angewendet werden.

Das obige ist der detaillierte Inhalt vonWie erstellt man rekursiv ein mehrdimensionales Array aus einem flachen Datenbankergebnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn