Heim > Backend-Entwicklung > PHP-Tutorial > Wie sortiere ich ein PHP-Array nach mehreren Feldwerten?

Wie sortiere ich ein PHP-Array nach mehreren Feldwerten?

Patricia Arquette
Freigeben: 2024-12-15 05:26:12
Original
874 Leute haben es durchsucht

How to Sort a PHP Array by Multiple Field Values?

Sortieren von PHP-Arrays nach mehreren Feldwerten

Das Sortieren von Arrays mit mehreren Werten kann in PHP schwierig sein, aber es gibt mehrere Ansätze, dies zu erreichen . Eine gängige Lösung ist die Verwendung der Funktion array_multisort().

Angenommen, Sie haben ein Array wie das in der Frage angegebene:

Array ([
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_1',
            'one_way_fare' => 100,
            'return_fare' => 300,
        ],
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_2',
            'one_way_fare' => 150,
            'return_fare' => 350,
        ],
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_3',
            'one_way_fare' => 180,
            'return_fare' => 380,
        ],
    ]
)
Nach dem Login kopieren

So sortieren Sie dieses Array sowohl nach return_fare als auch nach one_way_fare in In aufsteigender Reihenfolge können Sie array_multisort() wie folgt verwenden:

// Obtain a list of columns
foreach ($data as $key => $row) {
    $return_fare[$key]  = $row['return_fare'];
    $one_way_fare[$key] = $row['one_way_fare'];
}

// Sort the data with return_fare descending, one_way_fare ascending
array_multisort($data, $return_fare, SORT_ASC, $one_way_fare, SORT_ASC);
Nach dem Login kopieren

Dadurch wird das Array in aufsteigender Reihenfolge von return_fare, und dann wird innerhalb gleicher return_fare-Werte in aufsteigender Reihenfolge nach one_way_fare sortiert.

Eine andere Option ist die Verwendung der Funktion array_orderby(), die eine vereinfachte Syntax für die Sortierung nach mehreren Kriterien bietet:

$sorted = array_orderby($data, 'return_fare', SORT_ASC, 'one_way_fare', SORT_ASC);
Nach dem Login kopieren

Um Schleifen zu vermeiden, können Sie auch array_column() (verfügbar in PHP 5.5.0 oder höher) verwenden, um die gewünschten Spalten zu extrahieren und dann array_multisort() zu verwenden. auf diesen Spalten:

array_multisort(
    array_column($data, 'return_fare'), SORT_ASC,
    array_column($data, 'one_way_fare'), SORT_ASC,
    $data
);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein PHP-Array nach mehreren Feldwerten?. 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