Heim > Datenbank > MySQL-Tutorial > Wie konvertiere ich Datenbankergebnisse mithilfe einer Abschlusstabelle in ein mehrdimensionales Array?

Wie konvertiere ich Datenbankergebnisse mithilfe einer Abschlusstabelle in ein mehrdimensionales Array?

Susan Sarandon
Freigeben: 2024-11-07 00:52:02
Original
864 Leute haben es durchsucht

How to Convert Database Results into a Multidimensional Array Using a Closure Table?

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  
Nach dem Login kopieren

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

 );
Nach dem Login kopieren

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;
Nach dem Login kopieren

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());
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage