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

Wie kann ich in PHP ein mehrdimensionales Array nach mehreren Spalten sortieren?

Barbara Streisand
Freigeben: 2024-12-17 14:07:10
Original
320 Leute haben es durchsucht

How Can I Sort a Multidimensional Array by Multiple Columns in PHP?

Sortieren mehrdimensionaler Arrays nach mehreren Spalten

Das Sortieren mehrdimensionaler Arrays nach mehreren Spalten kann eine herausfordernde Aufgabe sein. Allerdings bietet PHP eine Reihe von Funktionen, die es relativ einfach machen.

Eine solche Funktion ist array_multisort(). Mit dieser Funktion können Sie ein Array nach mehreren Kriterien gleichzeitig sortieren. Um array_multisort() zu verwenden, müssen Sie zunächst ein Array von Sortierspalten und den entsprechenden Daten erstellen.

Hier ist ein Beispiel:

<?php
$mylist = array(
    array('ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york'),
    array('ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california')
);

# get a list of sort columns and their data to pass to array_multisort
$sort = array();
foreach($mylist as $k => $v) {
    $sort['state'][$k] = $v['state'];
    $sort['event_type'][$k] = $v['event_type'];
    $sort['date_start'][$k] = $v['date_start'];
}

# sort by state asc, event_type desc, and date_start asc
array_multisort($sort['state'], SORT_ASC, $sort['event_type'], SORT_DESC, $sort['date_start'], SORT_ASC, $mylist);

print_r($mylist); // print the sorted array

?php>
Nach dem Login kopieren

Ab PHP 5.5.0 können Sie das verwenden Folgende vereinfachte Syntax:

<?php
array_multisort(array_column($mylist, 'state'), SORT_ASC,
                array_column($mylist, 'event_type'), SORT_DESC,
                array_column($mylist, 'date_start'), SORT_ASC,
                $mylist);
?php>
Nach dem Login kopieren

Das $mylist-Array wird nun nach den angegebenen Spalten in der gewünschten Reihenfolge sortiert bestellen.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP ein mehrdimensionales Array 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