详细解释usort()

时间:2018-03-21 04:44:09

标签: php arrays function sorting usort

您好我正在尝试了解我创建的函数“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>";
?>

1 个答案:

答案 0 :(得分:0)

您的cmp功能不进行排序。它只是告诉我们一个值是否小于,等于或大于另一个值。 usort()函数使用用户定义的比较函数对数组进行排序。