Heim > Backend-Entwicklung > PHP-Tutorial > Wie transponiere ich eine spaltenförmige Datenstruktur in PHP in ein zeilenbasiertes Format?

Wie transponiere ich eine spaltenförmige Datenstruktur in PHP in ein zeilenbasiertes Format?

Linda Hamilton
Freigeben: 2024-10-25 10:16:02
Original
286 Leute haben es durchsucht

How to Transpose a Columnar Data Structure into Row-based Format in PHP?

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

Gewünschte Ausgabe:

$comb = [
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
];
Nach dem Login kopieren

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

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

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

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!

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