usort-PHP中的等数处理

usort-PHP中的等数处理,php,return,usort,Php,Return,Usort,我试图让PHP比较两个值,并使用usort()对它们进行排序。我有这个函数,它可以工作,但是如果$a==$b,这个函数就会停止运行 停止运行此函数会阻止PHP文件中的其他函数运行 <?php function cmp($a, $b) { if ($a[4] == $b[4]) { return 0; } return ($a[4] < $b[4]) ? -1 : 1; } usort($participants_times,"cmp"); ?&

我试图让PHP比较两个值,并使用
usort()
对它们进行排序。我有这个函数,它可以工作,但是如果
$a==$b
,这个函数就会停止运行

停止运行此函数会阻止PHP文件中的其他函数运行

<?php
function cmp($a, $b) {
    if ($a[4] == $b[4]) {
        return 0;
    }
    return ($a[4] < $b[4]) ? -1 : 1;
}
usort($participants_times,"cmp");
?>

当两个值相等时,我不介意哪一个在另一个之前。当
$a==$b
时,我尝试设置
返回-1
返回0
返回1
,但它们对我不起作用


非常感谢您的帮助:)

您应该用嵌套的if-else语句替换三元运算符。在您的条件下,对于
=
比较,它都返回1

if ($a[4] < $b[4])
    return -1;
else if ($a[4] > $b[4]) 
    return 1;
else
    return 0;
if($a[4]<$b[4])
返回-1;
否则如果($a[4]>$b[4])
返回1;
其他的
返回0;

因为你不在乎平等的情况,所以忽略它

function cmp($a, $b) {
    return ($a[4] < $b[4]) ? -1 : 1;
}

usort($participants_times,"cmp");
函数cmp($a,$b){
回报($a[4]<$b[4])?-1:1;
}
usort($参与者乘以“cmp”);

因此,提供的答案很可能对我的问题是正确的-但是,在我的例子中,问题与我的
函数()的形式有关,我在函数中有一个函数,而初始函数的第二次迭代失败


将我的
cmp()
函数移到调用它的函数之外解决了我的问题。

停止运行
是什么意思?有什么错误吗?我有一些php在这个函数之后运行,当有相等的值时,它根本无法运行。我有
var_dump()
'd,我知道这个函数是个问题,但我不知道如何从这个函数中获取检索错误。你能添加$a和$b的var_dump吗?很抱歉在旧线程中问了一个愚蠢的问题,但是你说它会返回1进行>和==比较。怎样?它没有为==比较返回1,而是返回0。如果==比较通过,则不会转到下一行比较