我的代码完全按照我的要求运行,但问题是我的代码按最高值排序到最低。你能帮我扭转它吗?当我打印出前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,它们都是相同的。
答案 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;
}