浅谈usort、uasort、uksort

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

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

a.基础案例

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

b.高级案例

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

返回结果:

 Array
(
 [0] => Array
 (
 [id] => 1
 [create_time] => 12234221
 )

 [1] => Array
 (
 [id] => 3
 [create_time] => 12234222
 )

 [2] => Array
 (
 [id] => 2
 [create_time] => 12234234
 )

)

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

3.uksort:按键排序