请教这段PHP程序?

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:19:19
<?
function mycompare($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, mycompare);
while(list($key, $value) = each($a)) {
echo "$key: $value\n";
}
?>
mycompare()是怎么实现由大到小排序的。return ($a > $b) ? -1 : 1这一句该怎么解释?该函数只是把两个数排序为什么就把所有的数排完了?请讲下详细过程,谢谢!
那为什么要赋值-1和1呢,赋值别的行不行?

"return ($a>$b)?-1:1"也就是
if($a>$b){
return -1;
}else{
return 1;
}
mycompare只是比较两个数,将所有数排完的是uksort函数.该函数使用用户自定义的比较函数对数组中的键名进行排序.