这是PHP手册上的例子,是用uksort做示范的,主要是让大家知道这个cmp_function怎么写:function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}$a = array (4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");uksort ($a, "cmp");while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}

解决方案 »

  1.   

    这个我也有,我要的是uasort的例子
      

  2.   

    把newsort()函数放到class 的外面。
      

  3.   

    把newsort()函数放到class的外面。
      

  4.   

    Exp.
       $ret[1]["teamid"] = 145;
       $ret[1]["score"] = 7; // 积分
       $ret[1]["m"] = 5; // 赛
       $ret[1]["w"] = 2; // 胜
       $ret[1]["d"] = 1; // 平
       $ret[1]["l"] = 2; // 负
       $ret[1]["i"] = 8; // 进球
       $ret[1]["o"] = 2; // 失球
       ... ...
       $ret[$i]["teamid"] = 234;
       $ret[$i]["score"] = 2;
       uasort($ret, 'scoreListCompare');
    // 积分排名规则。
    function scoreListCompare($ar1, $ar2)
    {
    // 先看积分
       if ($ar1['score']>$ar2['score'])
          return -1;
       else if ($ar1['score']<$ar2['score'])
          return 1;
       // 再看净胜球
       if (($ar1['i'] - $ar1['o']) > ($ar2['i'] - $ar2['o']))
          return -1;
       else if (($ar1['i'] - $ar1['o']) < ($ar2['i'] - $ar2['o']))
          return 1;
       // 再看进球数
       if ($ar1['i'] > $ar2['i'])
          return -1;
       else if ($ar1['i'] < $ar2['i'])
          return 1;
       return 0;
    }
      

  5.   

    刚才测试了一下,qsnake说的是很对的.只有把cmp函数放到class外才会被正常调用.对于楼主的情况,不妨自己写一个排序函数,因为你还要考虑很多其它的因素,自己写一定比较合适.