浅谈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 )
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);
返回结果:
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 )
2.uasort:按值排序,但会保持原来索引
3.uksort:按键排序
时不我待,不负韶华!立刻行动!不吃学习的苦就会吃生活的苦!