array_multisort

php二维数组排序方法(array_multisort usort)

半城伤御伤魂 提交于 2019-12-10 08:51:21
一维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现. 例如像下面的数组: 复制代码 代码如下: $users = array( array('name' => 'tom', 'age' => 20) , array('name' => 'anny', 'age' => 18) , array('name' => 'jack', 'age' => 22) ); 希望能按照age从小到大进行排序。笔者整理了两个方法出来,分享给大家。 1、使用array_multisort 使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下: 复制代码 代码如下: $ages = array(); foreach ($users as $user) { $ages[] = $user['age']; } array_multisort($ages, SORT_ASC, $users); 执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用: 复制代码 代码如下: array_multisort($ages, SORT_ASC,

array_multisort 排序

江枫思渺然 提交于 2019-12-10 08:37:40
1,array_multisort 对多个数组进行排序 说明 1,对两个数组进行排序,则第一个数组和第二个数组元素个数需一致。 2,以第一个数组排序规则为准,到第二个数组中找对应位置元素,将第二个数组元素放到和第一个数组元素对应的位置。 3,如果第一个数组中有元素相同,则按照第二排序规则,对第二个数组进行排序 $arr1 = array(1,55,1,10,3,21); $arr2 = array(1,10,2,355,20,100); array_multisort($arr1,SORT_ASC,SORT_NUMERIC,$arr2,SORT_DESC,SORT_NUMERIC); 排序结果: Array ( [0] => 1 [1] => 1 [2] => 3 [3] => 10 [4] => 21 [5] => 55 ) Array ( [0] => 2 [1] => 1 [2] => 20 [3] => 355 [4] => 100 [5] => 10 ) ) 2,array_multisort() 对多维数组,按照多个条件进行排序 $arr = array( array('num'=>1,'parise_num'=>22), array('num'=>2,'parise_num'=>11), array('num'=>3,'parise_num'=>11) ); $num