Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich ein Array assoziativer Arrays nach einem Spaltenwert in PHP?

Wie sortiere ich ein Array assoziativer Arrays nach einem Spaltenwert in PHP?

Linda Hamilton
Linda HamiltonOriginal
2025-01-01 01:05:17163Durchsuche

How to Sort an Array of Associative Arrays by a Column Value in PHP?

Sortieren eines Arrays assoziativer Arrays nach Spaltenwert

Das Sortieren von Daten ist eine grundlegende Aufgabe in der Programmierung. Wenn es um assoziative Arrays geht, bietet PHP mehrere integrierte Funktionen, um diesen Prozess zu erleichtern.

Betrachten Sie das folgende Array assoziativer Arrays:

$inventory = array(
   array("type" => "fruit", "price" => 3.50),
   array("type" => "milk", "price" => 2.90),
   array("type" => "pork", "price" => 5.43)
);

Die Aufgabe besteht darin, die Elemente von zu sortieren $Inventar nach der Spalte „Preis“ in absteigender Reihenfolge, was zu:

$inventory = array(
   array("type" => "pork", "price" => 5.43),
   array("type" => "fruit", "price" => 3.50),
   array("type" => "milk", "price" => 2.90)
);

Lösungsverwendung führt array_multisort()

Die Funktion array_multisort() ermöglicht das Sortieren eines Arrays (oder mehrerer Arrays) nach mehreren Spalten. Um nach „Preis“ in absteigender Reihenfolge zu sortieren, kann der folgende Code verwendet werden:

$price = array();
foreach ($inventory as $key => $row) {
    $price[$key] = $row['price'];
}
array_multisort($price, SORT_DESC, $inventory);

Alternative Lösung mit array_column() (PHP 5.5.0)

Für PHP-Versionen 5.5.0 und höher kann die Funktion array_column() verwendet werden, um das oben Gesagte zu vereinfachen Code:

$price = array_column($inventory, 'price');
array_multisort($price, SORT_DESC, $inventory);

Verwendung

Das sortierte $inventory-Array kann nun nach Bedarf verwendet werden. Der folgende Code würde beispielsweise das sortierte Array drucken:

foreach ($inventory as $item) {
    echo $item['type'] . ": $" . $item['price'] . PHP_EOL;
}

Ausgabe:

pork: .43
fruit: .50
milk: .90

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array assoziativer Arrays nach einem Spaltenwert in PHP?. 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