我需要使用uasort()函数,但我不知道如何在函数中获取参数......给出的例子对我来说并不是那么清楚。 cmp
函数如何得到他的论点?有人在意解释?
<?php
// Comparison function
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Array to be sorted
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);
// Sort and print the resulting array
uasort($array, 'cmp');
print_r($array);
?>
答案 0 :(得分:0)
从数组中挑选元素的顺序不应对比较函数的工作方式产生任何影响。
uasort
将被应用,直到您的数组中的每个元素都根据您在cmp
函数中应用的比较进行排序。
<强>更新强>
如果你真的想知道它是如何排序的,看看PHP源代码,数组首先应用了zend_hash_sort
,它使用zend_qsort
比较函数,据我所知,按价值排序。
尝试将cmp功能更改为以下内容以查看正在进行的操作:
function cmp($a, $b) {
echo "a=$a, b=$b"; // add this to see what's going on
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}