background image

                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>

本例中经过排序后,第一个数组将包含

 10,100,100,"a"(作为字符串上升排序),

 

第二个数组将包含

1,3,"2",1(作为数值下降排序)。

PHP 数组排序函数很多,也很强大
如:

arsort,asort,krsort,ksort,sort…

但有时候还是满足不了我们的需求
假如有一个二维数组,我们要按二维数组中的一个值来排序
就需要用到了

usort 自定义数组排序

例子如下:

代码如下
<?php

 
$aa = array (array ("score"=>60),
    array ("score"=>70),
    array ("score"=>80),
    array ("score"=>90),
    array ("score"=>20),
    array ("score"=>10),
    array ("score"=>50),
    array ("score"=>30));
 
echo '------排序前输出------<br />';   
var_dump($aa); // 排序前输出
 
usort($aa, "cmp"); // 排序处理(从大到小)
 
echo '<br />------排序后输出------<br />';
var_dump($aa); // 排序完输出
 
/**
 * 自定义排序条件
 * @param array $a
 * @param array $b
 * @return bool
 */
function cmp($a, $b) {
 if ($a["score"] == $b["score"]) {
  return 0;
 }
 return ($a["score"] < $b["score"]) ? 1 : -1;
}