Konvertieren von Datenbankergebnissen in ein mehrdimensionales Array
Im Bereich der Datenverwaltung ist es häufig erforderlich, hierarchische Datenstrukturen in einem Benutzer zu organisieren und darzustellen -freundliches und leicht verdauliches Format. Um dies zu erreichen, kann der „Closure Table“-Ansatz eine wirksame Lösung sein. Diese Technik erfordert die Verwaltung einer separaten Tabelle zum Speichern von Beziehungen zwischen hierarchischen Elementen, der sogenannten „Closure-Tabelle“.
Durch die Verwendung einer „Closure-Tabelle“ wird es möglich, Teilbäume effizient abzurufen und hierarchische Datenanordnungen zu generieren. Betrachten Sie zum Beispiel das folgende Beispiel:
Table Categories: ID Name 1 Top value 2 Sub value1 Table CategoryTree: child parent level 1 1 0 2 2 0 2 1 1
Das Ziel besteht darin, die hierarchischen Daten als mehrdimensionales Array zu erhalten. Die gewünschte Ausgabe würde wie folgt aussehen:
array ( 'topvalue' = array ( 'Subvalue', 'Subvalue2', 'Subvalue3) ); );
Um dies zu erreichen, können wir SQL-Abfragen und Zeilenverarbeitungstechniken nutzen. Betrachten Sie den folgenden Pseudocode:
while ($rowData = fetch()) { $row = new RowObject($rowData); $nodes[$row["tsn"]] = $row; if (array_key_exists($row["_parent"], $nodes)) { $nodes[$row["_parent"]]->addChildRow($row); } else { $top = $row; } } return $top;
Hier definieren wir Klassen für Zeilen und Rowsets, wobei ein Rowset ein Array von Zeilen darstellt und eine Zeile ein assoziatives Array von Zeilendaten zusammen mit einem Rowset für seine untergeordneten Elemente enthält . Wir definieren auch Methoden innerhalb von Zeilen und Rowsets, um deren Daten rekursiv als einfaches Array auszugeben.
Schließlich können wir dieses gesamte System wie folgt verwenden:
// Get an instance of the taxonomy table data gateway $tax = new Taxonomy(); // query tree starting at Rodentia (id 180130), to a depth of 2 $tree = $tax->fetchTree(180130, 2); // dump out the array var_export($tree->toArrayDeep());
Dieser Prozess ermöglicht flexible und anpassbare Manipulation hierarchischer Daten, die einen eleganten und organisierten Ansatz zur Darstellung komplexer Beziehungen bietet.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Datenbankergebnisse mithilfe einer Abschlusstabelle in ein mehrdimensionales Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!