PHP二维数组,根据多个字段来排序 array_multisort
PHP二维数组,根据多个字段来排序 array_multisort
如果是最最常见的二维数组排序, 大多数情况下也只用到二维;
用php内置函数 array_multisort( ) 是最简单的;
//假设, $arr 是一个二维数组, $arg1是取出的字段1, $arg2是取出的字段2, 需要多少个字段拿多少个!
// 先用 内置函数 array_column 取出其中一个字段
<?php
array_multisort(array_column($arr, $arg1),SORT_ASC,array_column($arr, $arg2),SORT_DESC, $arr);
//这样既可得到根据两个字段来排序的功能,简单快捷!
array_multisort(array_column($r, 'capture_time'),SORT_DESC,array_column($r, 'rid'),SORT_DESC, $r);
代码如下:
$a = [
[
'name'=>'name1',
'age'=>'face',
'f'=>3
],
[
'name'=>'nam2',
'age'=>'car',
'f'=>1
],
[
'name'=>'这是',
'age'=>'face',
'f'=>4
],
[
'name'=>'nn22',
'age'=>'face',
'f'=>1
]
];
array_multisort(array_column($a,'f'),SORT_DESC,array_column($a,'age'),SORT_DESC,$a);
echo "<pre>";
print_r($a);
die;
结果如下图