<?php
function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a < $b) ? -1 : 1;
}$a = array (3, 2, 5, 6, 1);usort ($a, "cmp");while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}
?>
运行 function的时候 $a, $b 分别是多少

解决方案 »

  1.   

    function cmp ($a, $b)
    是usort要使用到比较函数在usort函数中使用时 $a和$b在就是你array $a中的各个数
      

  2.   

    那他们又是如何比较的啊  ($a < $b) ? -1 : 1; 返回值是1或者-1 还是看不懂为什么是1或者-1
      

  3.   

    $a比$b大就是返回1
    $b比$a大就返回-11,-1其实问题不大  改成-2,100也行
    重要是返回值一个比0大 一个比0小升序排列时 
    $a比$b大就是返回>0的数
    相等返回0
    否则返回<0的数降序时正好相反