Heim  >  Artikel  >  Datenbank  >  Wie kann ich Datenbankergebnisse in ein mehrdimensionales Array konvertieren, um eine hierarchische Datenstruktur darzustellen?

Wie kann ich Datenbankergebnisse in ein mehrdimensionales Array konvertieren, um eine hierarchische Datenstruktur darzustellen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 16:23:03935Durchsuche

How can I convert database results into a multidimensional array to represent a hierarchical data structure?

Konvertieren von Datenbankergebnissen in Arrays

Einführung

Diese Diskussion konzentriert sich auf das Abrufen einer hierarchischen Datenstruktur aus einer Datenbank und deren Konvertierung in ein mehrdimensionales Array eine einzelne Abfrage. Das Ziel besteht darin, ein Array zu erhalten, das die Baumstruktur der Daten darstellt.

Lösung

Um eine Baumstruktur aus einer Datenbank zu extrahieren, wird üblicherweise eine Abschlusstabelle verwendet. Eine Abschlusstabelle zeichnet die Beziehungen zwischen Vorfahren und Nachkommen innerhalb einer Hierarchie auf und ermöglicht so eine effiziente Abfrage von Nachkommen.

SQL-Abfrage

Angesichts des Primärschlüssels eines Knotens kann die Abfrage seiner Nachkommen mithilfe von SQL erreicht werden Verwenden Sie die folgenden Schritte:

  1. Verknüpfen Sie die Abschlusstabelle mit der Primärtabelle, um alle Nachkommen zu finden.
  2. Verknüpfen Sie optional eine andere Instanz der Abschlusstabelle, um übergeordnete Informationen einzuschließen.
  3. Begrenzen Sie die Anzahl der abzurufenden Ebenen basierend auf dem Tiefenparameter.
  4. Ordnen Sie die Ergebnisse nach ihrer Entfernung vom Wurzelknoten.

Nachbearbeitung

Das SQL-Ergebnis wird dann wie folgt verarbeitet:

  1. Zeilen werden basierend auf ihrer hierarchischen Beziehung in Teilmengen sortiert.
  2. Jede Zeile wird in ein Zeilenobjekt umgewandelt, das eine Sammlung enthält von untergeordneten Zeilen.
  3. Eine Rowset-Klasse wird verwendet, um eine Sammlung von Zeilen darzustellen, die jeweils ihre untergeordneten Zeilen enthalten.
  4. Der resultierende Baum wird erstellt, indem vom Wurzelknoten ausgegangen wird und seine untergeordneten Elemente rekursiv hinzugefügt werden.

Codebeispiel

In PHP demonstriert der folgende Code unter Verwendung des Zend Framework den Prozess:

// Get taxonomy table instance
$tax = new Taxonomy();

// Fetch tree starting at Rodentia (id 180130) to a depth of 2
$tree = $tax->fetchTree(180130, 2);

// Dump the array
var_export($tree->toArrayDeep());

Ausgabe

Die Ausgabe ist ein mehrdimensionales Array, das die Baumstruktur der Daten darstellt, wie zum Beispiel:

array (
  'tsn' => '180130',
  'completename' => 'Rodentia',
  '_parent' => '179925',
  '_children' => [
    // Child rows...
  ],
)

Das obige ist der detaillierte Inhalt vonWie kann ich Datenbankergebnisse in ein mehrdimensionales Array konvertieren, um eine hierarchische Datenstruktur darzustellen?. 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