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

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

Linda Hamilton
发布: 2025-01-01 01:05:17
原创
126 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板