2017-01-25 8 views
1

PHPを取得して2つの値を比較し、usort()を使用してソートしようとしています。私はこの機能は動作しますが、この機能は動作しなくなります。$a == $busortで等しい数を扱うPHP

この機能を停止させると、PHPファイル内のさらなる機能が実行されなくなります。

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

2つの値が等しい場合、どちらが他のものの前にあるかは気にしません。 $a == $bと設定したところ、return -1return 0return 1に設定しようとしましたが、うまく動作しませんでした。

すべてのヘルプは高く評価され:)あなたは、ネストされた場合-else文と三項演算子を置き換える必要があり

+0

「実行を停止する」とはどういう意味ですか?何か間違いはありますか? –

+0

私は、この関数の後に実行されるphpをいくつか持っていて、等しい値があるときには全く実行されません。私は 'var_dump()' dを持っており、この関数が問題であることは分かっていますが、この関数からエラーを取得する方法はわかりません。 –

+0

$ aと$ bのvar_dumpを追加できますか? –

答えて

1

。あなたの状態では、>==の比較のために1を返します。

if ($a[4] < $b[4]) 
    return -1; 
else if ($a[4] > $b[4]) 
    return 1; 
else 
    return 0; 
0

あなたは同じケースを気にしないので、ちょうど

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

usort($participants_times,"cmp"); 
0

それを無視して設けられた答えは非常に可能性が正しい私の質問にある - しかし、私の場合には、問題はに関連していました私のfunction()の形式では、関数内に関数があり、最初の関数の2番目の繰り返しが失敗しました。

私のcmp()関数を呼び出す関数の外に移動すると、私の問題が解決しました。