平时简单的一维数组或者简单的数组排序这里就不多作介绍,这里主要是针对平时做项目中的可能遇到的情况,根据多维数组中的其中一个排序。
用到的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最后的结果来看一看结果: