Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich mit „array_multisort' ein mehrdimensionales Array in PHP nach mehreren Spalten sortieren?

Wie kann ich mit „array_multisort' ein mehrdimensionales Array in PHP nach mehreren Spalten sortieren?

Patricia Arquette
Freigeben: 2024-12-31 06:26:09
Original
959 Leute haben es durchsucht

How can I sort a multidimensional array in PHP by multiple columns using `array_multisort`?

Mehrdimensionale Arrays nach mehreren Spalten sortieren

Das Sortieren eines mehrdimensionalen Arrays kann eine anspruchsvolle Aufgabe sein, insbesondere wenn mehrere Kriterien berücksichtigt werden. Glücklicherweise bietet PHP mit der Funktion array_multisort eine elegante Lösung.

Um ein mehrdimensionales Array zu sortieren, müssen wir die erforderlichen Spalten extrahieren und an array_multisort übergeben. Jede Spalte wird unabhängig sortiert, wobei die Sortierreihenfolge als SORT_ASC oder SORT_DESC angegeben wird.

Zum Beispiel das folgende Eingabearray:

$array = [
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california']
];
Nach dem Login kopieren

Um nach Status zu sortieren, dann nach Ereignistyp und schließlich date_start würden wir den folgenden Code verwenden:

# extract columns
$state = array_column($array, 'state');
$event_type = array_column($array, 'event_type');
$date_start = array_column($array, 'date_start');

# sort by state desc, event_type asc, date_start asc
array_multisort($state, SORT_DESC, $event_type, SORT_ASC, $date_start, SORT_ASC, $array);
Nach dem Login kopieren

PHP 5.5.0 führt eine vereinfachte Syntax mit ein array_column:

array_multisort(
    array_column($array, 'state'), SORT_DESC,
    array_column($array, 'event_type'),      SORT_ASC,
    $array
);
Nach dem Login kopieren

Als Ergebnis sieht das sortierte Array wie folgt aus:

[
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
];
Nach dem Login kopieren

Durch die Verwendung von array_multisort haben wir das mehrdimensionale Array effektiv auf der Grundlage mehrerer Spalten sortiert und so eine flexible und leistungsstarke Lösung bereitgestellt Lösung für die Organisation und den Abruf von Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit „array_multisort' ein mehrdimensionales Array in PHP nach mehreren Spalten sortieren?. 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