浅谈usort、uasort、uksort

前言:这三个函数都是php提供给开发者自定义的数组排序函数。

1.usort:按值排序,索引重新定义

a.基础案例

1 //自定义比较的函数
2 function mysort($a,$b){
3     if($a == $b) return 0;
4     return $a>$b?1:-1; //表示从小到大排列,如果想从大到小排列,则1和-1对调一下即可      
5 }
6 $a = array(2,3,1,6,4);
7 usort($a,'mysort');
8 print_r($a);
9 //返回:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )
View Code

b.高级案例

 1 //根据数组中某个元素的值大小排序[二维数组]
 2 function mysort($a,$b){
 3    if($a['create_time']==$b['create_time']) return 0;
 4   return $a['create_time']>$b['create_time']?1:-1;   
 5 }
 6 $a = array(
 7     array('id'=>2,'create_time'=>12234234),
 8     array('id'=>1,'create_time'=>12234221),    
 9     array('id'=>3,'create_time'=>12234222), 
10 );
11 usort($a,'mysort');
12 echo '<pre>';
13 print_r($a);
View Code

返回结果:

 1 Array
 2 (
 3     [0] => Array
 4         (
 5             [id] => 1
 6             [create_time] => 12234221
 7         )
 8 
 9     [1] => Array
10         (
11             [id] => 3
12             [create_time] => 12234222
13         )
14 
15     [2] => Array
16         (
17             [id] => 2
18             [create_time] => 12234234
19         )
20 
21 )
View Code

2.uasort:按值排序,但会保持原来索引

3.uksort:按键排序

原文地址:https://www.cnblogs.com/zrp2013/p/4639193.html