首页 >后端开发 >php教程 >如何按内部字段的值对多维 PHP 数组进行排序?

如何按内部字段的值对多维 PHP 数组进行排序?

Linda Hamilton
Linda Hamilton原创
2024-12-18 16:33:12609浏览

How to Sort a Multidimensional PHP Array by an Inner Field's Value?

在 PHP 中按内部字段对多维数组进行排序

假设我们有一个类似于数据库表的多维数组,每个外部数组元素代表一行和每个包含字段名称和值的内部数组。我们希望按特定字段(例如“价格”)对行(外部数组元素)进行排序。

要实现此目的,我们可以利用以下 PHP 函数:

array_multisort(array_column($yourArray, "price"), SORT_ASC, $yourArray);

This line 以简洁的方式实现了我们想要的结果。 array_multisort() 函数采用三个参数:

  1. array_column($yourArray, "price") - 将每个内部数组中的“price”字段值提取到一维数组中。
  2. SORT_ASC - 指定“价格”字段应按升序排序。
  3. $yourArray - 多维要排序的数组。

通过将这些函数链接在一起,我们可以有效地按“价格”字段对外部数组元素进行排序。需要注意的是,此过程会覆盖原始 $yourArray 变量,因此如果需要保留原始顺序,建议将结果分配给不同的变量。

更新:

  • 在最近的 PHP 7 版本中,使用“&”通过引用传递变量可能会导致错误。要解决此问题,可以采用以下两行解决方法:
$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);
  • PHP 8 消除了此问题,允许使用单行解决方案而无需任何调整。

以上是如何按内部字段的值对多维 PHP 数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

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