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!