PHP多维数组根据其中一个字段的值排序

高洛峰
高洛峰 原创
2016-10-09 11:51:17 941浏览

平时简单的一维数组或者简单的数组排序这里就不多作介绍,这里主要是针对平时做项目中的可能遇到的情况,根据多维数组中的其中一个排序。
用到的php函数是:array_multisort.

思路:获取其中你需要排序的字段,作为一维数组arr1,后边会用来排序多维数组data.
这里主要以二维数组为例,多维数组也是同样的思路。

$data = array(
array('price' => '500', 'count' => '40', 'level' => '1'),
array('price' => '600', 'count' => '30', 'level' => '2'),
array('price' => '650', 'count' => '20', 'level' => '3'),
array('price' => '700', 'count' => '10', 'level' => '4'),
);

假设以价格来倒叙,我们就需要获取价格这个字段的值,作为一个新的一维数组。

$arr1 = array_map(create_function('$n', 'return $n["price"];'), $data);

如果php版本大于 5.5的话,可以直接用 array_column 这个数组操作方法直接获取某个字段,这里也可以通过foreach来获取,但是尽量用内置函数处理。

然后就用array_multisort处理,

array_multisort($arr1,SORT_DESC,$data );//多维数组的排序

我们可以打印$data最后的结果来看一看结果:

1.png

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