天天看点

PHP 二维数组排序——array_multisort()

有时候我们要对一个多维数组进行排序,如对以下数组:

$a = array(
        array(
            'age' => ,
            'name' => 'John',
            ),
        array(
            'age' => ,
            'name' => 'Jim',
            ),  
        array(
            'age' => ,
            'name' => 'Tom',
            ),
    );
           

根据age进行排序,则我们使用array_multisort(),其功能是

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

所以要先把age拿出来:

$age = array();
    foreach ($a as $value) {
        $age[] = $value['age'];
    }
           

再对$a数组进行排序:

array_multisort($age, SORT_ASC, $a);
           

这里相当于使用 age数组对 a g e 数 组 对 a进行升序排序