首页 >后端开发 >php教程 >如何在 PHP 中按列值对关联数组进行排序?

如何在 PHP 中按列值对关联数组进行排序?

Linda Hamilton
Linda Hamilton原创
2025-01-01 01:05:17138浏览

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

按列值对关联数组进行排序

对数据进行排序是编程中的一项基本任务。对于关联数组,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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn