2011-07-10 8 views
1

私は自分のコードがどのようにしたいのかを完全に処理していますが、問題は私のコードが最高値から最低値にソー​​トされていることです。最初の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

をアレイのように見える? "duration"キーはすべての配列要素に存在しますか? 「期間」の値は数値ですか? –

+0

"usort関数呼び出しの前と後に$ onlineStreamsのprint_rを実行していますが、どちらも同じですか?"どちらの場合でもソートが機能しないか、 '>'や '<'と比較してもソートの結果は同じであることを意味しますか?ソートが成功したことを確認するために、usortの戻り値をチェックしようとしましたか? –

答えて

3

ジャスト未満によりあなたの大きな変更:

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

forループを使用してテストしたとき(上記参照)、 – shadowprotocol

0

記号より大きいを逆転し、それはあまりこのような、より作ってみましょう:あなたの `$ onlineStreams`を何

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

>これを逆転しても正しく再配置されませんでした。どちらの方法も同じです – shadowprotocol