PHP array_multisort 多维数组排序的理解

array_multisort(array1,sorting order,sorting type,array2,array3...)
 
1. 数组从前往后,依次排序; 前一组数中值相同时,才考虑后一个数组中的值排序;
2. 任一数组排序变化,影响的是所有数组的同序位值的统一排序位;
3. 要求数组长度一致,如果不一致,短的将补空,补齐位数; 
 
 1 $mult=[
 2     ['name'=>'张三','score'=>88,'age'=>11],
 3     ['name'=>'李四','score'=>88,'age'=>10],
 4     ['name'=>'王五','score'=>90,'age'=>10],
 5     ['name'=>'赵六','score'=>98,'age'=>12],
 6     ['score'=>100,'age'=>5],
 7     ['score'=>100]
 8 ];
 9 echo '<pre>';
10 
11 echo '二维数组原内容<br>';
12 print_r($mult);
13 echo '<hr>';
14 
15 foreach($mult as $k=>$v){
16     $score[$k]=$v['score'];
17     $age[$k]=$v['age'];
18 }
19 
20 echo '待排序内容';
21 print_r($score);
22 print_r($age);
23 
24 echo '成绩降序,成绩一样时,年龄升序 后';
25 
26 
27 
28 //成绩降序,成绩一样时,年龄升序
29 array_multisort($score,SORT_DESC,$age,SORT_ASC,$mult);
30 print_r($mult);
31 echo '<hr>';

 

 
 
posted @ 2022-10-23 09:22  耗喜天涯  阅读(28)  评论(0编辑  收藏  举报