帮助反转我的数组排序比较

时间:2011-07-10 17:35:12

标签: php sorting reverse

我的代码完全按照我的要求运行,但问题是我的代码按最高值排序到最低。你能帮我扭转它吗?当我打印出前10个时,实际上是“10个最新”(意味着最短的持续时间)?

非常感谢

function compareStreamDurations($a, $b)
{
     if ($a["duration"] == $b["duration"]) 
     {
        return 0;
     }
     return ($a["duration"] > $b["duration"]) ? -1 : 1;
}

usort($onlineStreams, 'compareStreamDurations');

for ( $i=0; $i<10; $i++ )
{
    echo '<p>', $onlineStreams[$i]["duration"] ,'</p>';
}

下面发布的解决方案(扭转标志)不起作用。我在usort函数调用之前和之后都在执行$ onlineStreams的print_r,它们都是相同的。

2 个答案:

答案 0 :(得分:3)

只需将你的大于......改为小于:

return ($a["duration"] < $b["duration"]) ? -1 : 1;

答案 1 :(得分:0)

尝试颠倒大于号并使其小于,如下所示:

function compareStreamDurations($a, $b)
{
     if ($a["duration"] == $b["duration"]) 
     {
        return 0;
     }
     return ($a["duration"] < $b["duration"]) ? -1 : 1;
}