按列值对关联数组进行排序
对数据进行排序是编程中的一项基本任务。对于关联数组,PHP 提供了几个内置函数来促进此过程。
考虑以下关联数组数组:
$inventory = array( array("type" => "fruit", "price" => 3.50), array("type" => "milk", "price" => 2.90), array("type" => "pork", "price" => 5.43) );
任务是对 的元素进行排序$inventory按“价格”列降序排列,结果在:
$inventory = array( array("type" => "pork", "price" => 5.43), array("type" => "fruit", "price" => 3.50), array("type" => "milk", "price" => 2.90) );
使用 array_multisort() 的解决方案
array_multisort() 函数允许按多列对一个数组(或多个数组)进行排序。要按“价格”降序排序,可以使用以下代码:
$price = array(); foreach ($inventory as $key => $row) { $price[$key] = $row['price']; } array_multisort($price, SORT_DESC, $inventory);
使用 array_column() 的替代解决方案(PHP 5.5.0)
对于 PHP 5.5.0 及以上版本,可以使用 array_column() 函数来简化上述操作code:
$price = array_column($inventory, 'price'); array_multisort($price, SORT_DESC, $inventory);
用法
现在可以根据需要使用排序后的 $inventory 数组。例如,以下代码将打印排序后的数组:
foreach ($inventory as $item) { echo $item['type'] . ": $" . $item['price'] . PHP_EOL; }
输出:
pork: .43 fruit: .50 milk: .90
以上是如何在 PHP 中按列值对关联数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!