首页  >  文章  >  后端开发  >  如何根据内部数组值对多维 PHP 数组进行排序?

如何根据内部数组值对多维 PHP 数组进行排序?

Susan Sarandon
Susan Sarandon原创
2024-11-03 03:40:31604浏览

How to Sort Multi-Dimensional PHP Arrays Based on Inner Array Values?

根据内部数组值对多维 PHP 数组进行排序

对多维数组进行排序可能很棘手,尤其是当排序参数为埋藏在嵌套数组中。要根据内部数组中的值对 PHP 哈希表进行排序,例如按“name”键对数组数组进行排序,需要自定义排序函数。

创建自定义排序函数

基于嵌套值排序的一种方法是创建一个自定义排序函数,从内部提取所需的值array:

<code class="php">function cmp($a, $b) {
    return $b['name'] - $a['name'];
}</code>

在此示例中,cmp 函数比较内部数组中的“name”键。通过减去值而不是相加来实现降序排序。

使用排序函数

要使用自定义排序函数,请将 usort 应用于数组:

<code class="php">usort($mydata, "cmp");</code>

这会根据 $mydata 数组中的 'name' 键以降序排序内部数组。

替代方法

根据具体用例,对多维数组进行排序的另一个选项是 array_sort 函数:

<code class="php">function array_sort($array, $on, $order=SORT_ASC){

   // ... (function definition) ...

   // ... (sorting logic) ...

}</code>

array_sort函数可以如下使用,按'name'升序排序key:

<code class="php">$list = array(
   array( 'type' => 'suite', 'name' => 'A-Name'),
   array( 'type' => 'suite', 'name' => 'C-Name'),
   array( 'type' => 'suite', 'name' => 'B-Name')
);

$list = array_sort($list, 'name', SORT_ASC);</code>

这种替代方法提供了一种基于内部数组中的值对多维数组进行排序的全面解决方案。

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

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