PHP二维数组排序
程序员文章站
2022-06-25 08:41:55
以前遇到二维数组排序的问题都是自己写排序函数,今天遇到一个二维数组排序问题,就想简单一点,网上找了一圈,没发现比较简单的写法,研究了一下PHP自带的函数,发现只使用`array_multisort`这个函数就可以实现二维数组排序,下面是示例: 下面是输出结果: Array ( [0] => Arra ......
以前遇到二维数组排序的问题都是自己写排序函数,今天遇到一个二维数组排序问题,就想简单一点,网上找了一圈,没发现比较简单的写法,研究了一下PHP自带的函数,发现只使用`array_multisort`这个函数就可以实现二维数组排序,下面是示例:
/** * 胡荣桓 <huronghuan@hongboict.com> * 2018-06-05 */ //示例数组 $arrUsers = array( array( 'id' => 1, 'name' => '张三', 'age' => 25, ), array( 'id' => 2, 'name' => '李四', 'age' => 23, ), array( 'id' => 3, 'name' => '王五', 'age' => 40, ), array( 'id' => 4, 'name' => '赵六', 'age' => 31, ), array( 'id' => 5, 'name' => '黄七', 'age' => 20, ), ); //$arrUsers 待排序参数,`age` 二维数组字段 //根据年龄排序 ,如果要降序排序,则第二个参数改为`SORT_DESC` //亦可根据字符串排序,只需在`SORT_ASC`后添加参数 `SORT_STRING` array_multisort(array_column($arrUsers, 'age'),SORT_ASC,$arrUsers); print_r($arrUsers);
下面是输出结果:
Array
(
[0] => Array
(
[id] => 5
[name] => 黄七
[age] => 20
)
[1] => Array
(
[id] => 2
[name] => 李四
[age] => 23
)
[2] => Array
(
[id] => 1
[name] => 张三
[age] => 25
)
[3] => Array
(
[id] => 4
[name] => 赵六
[age] => 31
)
[4] => Array
(
[id] => 3
[name] => 王五
[age] => 40
)
)