这是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";
}
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";
}
$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;
}