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'] ];
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);
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 );
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'], ];
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!