欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

        )

 

)