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
Patricia ArquetteOriginal
2024-12-15 05:26:12875Durchsuche

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,
        ],
    ]
)

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);

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);

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
);

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!

Stellungnahme:
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