1、cmd函数中书写错误,造成定义失败
function cmp($a,$b){
if ($a==$b)return 0;
else return $a>$b?-1:1;
}2、假定usort采用“冒泡法”排序,实际应该是更高效的算法

$ar = array(3,2,5,6,1);
for($i=0;$i<count($ar)-1;$i++)
  for($j=$i+1;$j<count($ar);$j++) {
    // 注意这里
    if(cmd($ar[$i],$ar[$j]) > 0) {
      $c = $ar[$i];
      $ar[$i] = $ar[$j];
      $ar[$j] = $c;
    }
  }
无论函数内部采用何种算法,交换元素都需要一个条件