我正在尝试让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");
?>
当有两个相等的值时,我不介意哪一个在另一个之前。我曾尝试在return -1
时设置return 0
,return 1
和$a == $b
,但它们对我没有用。
感谢任何帮助:)
答案 0 :(得分:1)
您应该使用嵌套的if-else语句替换三元运算符。在您的情况下,它会为>
和==
比较返回1。
if ($a[4] < $b[4])
return -1;
else if ($a[4] > $b[4])
return 1;
else
return 0;
答案 1 :(得分:0)
因为你不关心平等的情况,只要忽略它
function cmp($a, $b) {
return ($a[4] < $b[4]) ? -1 : 1;
}
usort($participants_times,"cmp");
答案 2 :(得分:0)
所以提供的答案很可能对我的问题是正确的 - 但是,就我而言,问题与我function()
的形式有关,我在函数内部有一个函数,初始函数的第二次迭代失败。
将cmp()
函数移到调用它的函数之外解决了我的问题。