Mehrdimensionale Spaltendaten in eine zeilenbasierte Struktur umordnen
Gegeben ein assoziatives Array mit spaltenorientierten Daten, besteht die Aufgabe darin, es in eine zeilenbasierte Struktur umzuordnen ein mehrdimensionales Array bestehend aus Zeilen. Die Daten im ursprünglichen Array sind nach Spalten geordnet und das Ziel besteht darin, die Werte aus derselben Spalte in Zeilen zusammenzuführen.
Ursprüngliches Array:
$where = [ 'id' => [ 12, 13, 14 ], 'date' => [ '1999-06-12', '2000-03-21', '2006-09-31' ] ];
Gewünschte Ausgabe:
$comb = [ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ];
Lösung:
Eine effektive Möglichkeit, diese Datenumstrukturierung zu erreichen, besteht darin, die Werte jeder Spalte mit zu durchlaufen eine Schleife und kombinieren Sie sie für jede Zeile zu einem Array. Hier ist ein Beispiel:
<code class="php">$result = []; foreach ($where['id'] as $key => $id) { $result[] = [$id, $where['date'][$key]]; }</code>
array_column()-Ansatz:
Eine elegante Alternative zur schleifenbasierten Lösung ist die Verwendung der Funktion array_column(), die extrahiert eine bestimmte Spalte aus einem mehrdimensionalen Array.
<code class="php">$result = []; foreach ($where['id'] as $key => $id) { $result[] = array_column($where, $key); }</code>
Die Funktion array_column() gibt die angegebene Spalte als Array zurück, das dann mit den Werten aus der entsprechenden Zeile kombiniert werden kann.
Ausgabe:
Beide Lösungen erzeugen die gewünschte Ausgabe:
[ [12, '1999-06-12'], [13, '2000-03-21'], [14, '2006-09-31'] ]
Das obige ist der detaillierte Inhalt vonWie transponiere ich eine spaltenförmige Datenstruktur in PHP in ein zeilenbasiertes Format?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!