详细解释 usort()
Explaining usort() in detail
您好,我目前正在尝试了解我创建的函数 "cmp()" 如何与函数 usort() 一起工作。我似乎无法理解逻辑。有人可以帮我吗?
<?php
function cmp($a, $b) {
echo "Iteration: " . $a . " > " . $b;
if($a<$b)
{
echo " FALSE <br>";
}
elseif($a>$b)
{
echo " TRUE <br>";
}
else
{
echo " ??? <br>";
}
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);
echo "<pre>";
print_r($array);
echo "</pre>";
// Sort and print the resulting array
echo "<pre>";
uasort($array, 'cmp');
echo "<br>";
print_r($array);
echo "</pre>";
?>
您的 cmp 函数不进行排序。它只是告诉我们一个值是小于、等于还是大于另一个值。
usort() 函数使用 user-defined 比较函数对数组进行排序。
您好,我目前正在尝试了解我创建的函数 "cmp()" 如何与函数 usort() 一起工作。我似乎无法理解逻辑。有人可以帮我吗?
<?php
function cmp($a, $b) {
echo "Iteration: " . $a . " > " . $b;
if($a<$b)
{
echo " FALSE <br>";
}
elseif($a>$b)
{
echo " TRUE <br>";
}
else
{
echo " ??? <br>";
}
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);
echo "<pre>";
print_r($array);
echo "</pre>";
// Sort and print the resulting array
echo "<pre>";
uasort($array, 'cmp');
echo "<br>";
print_r($array);
echo "</pre>";
?>
您的 cmp 函数不进行排序。它只是告诉我们一个值是小于、等于还是大于另一个值。 usort() 函数使用 user-defined 比较函数对数组进行排序。