首页 > 代码库 > php数组排序
php数组排序
sort() 对索引数组进行升序排序,其反函数是 rsort()
asort() 对关联数组的值进行升序排序,其反函数是 arsort()
ksort() 对关联数组的键名进行升序排序,其反函数是 krsort()
usort() 对多维数组进行排序 (还有uasort()和uksort()函数,用法一样)
定义和用法
usort() 函数使用用户自定义的函数对数组排序。
注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案。
注释:本函数为 array 中的元素赋予新的键名。这会删除原有的键名。
语法
usort(array,sorttype)
参数 | 描述 |
---|---|
array | 必需。规定要排序的数组。 |
function | 必需。用户自定义的函数。 函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:
|
例子
<?phpfunction my_sort($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; }$arr = array("Peter", "glenn","Cleveland","peter","cleveland", "Glenn");usort($arr, "my_sort");print_r ($arr);?>
输出:
Array([0] => peter[1] => glenn[2] => cleveland[3] => Peter[4] => Glenn[5] => Cleveland)
例2
function compare($a,$b){
if ($a[1]==$b[1]){
return 0;
}elseif ($a[1]>$b[1]){
return 1;
}else{
return -1;
}
}
$arr=array(
array("df",123),
array("aa",333),
array("gg",222)
);
print_r($arr);
echo "<br>";
usort($arr,‘compare‘);
print_r($arr);
php数组排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。