なぜ、このusort()ん - 関数は、PHPの一部のバージョンでは失敗しますか?

StackOverflow https://stackoverflow.com/questions/561734

  •  05-09-2019
  •  | 
  •  

質問

私たちは、開発システム(PHP 5.2.8)上で正常に動作しますusortを含むいくつかのコードを書いたが、私たちのライブシステム(PHP 5.2.0)に問題が発生しています:

// Sort by distance
usort($locations, 'Interpolator::sortByDistance');

は、(同じクラスインターポレータ内)メソッドを呼び出します

private static function sortByDistance($a, $b) {
    $return = 0;
    if($a['distance'] > $b['distance']) {
        $return = 1;
    } else if ($a['distance'] < $b['distance']) {
        $return = -1;
    }
    return $return;
}        

私たちのライブのシステムでは、これは完全に任意にソートされた配列を返し、元の順序が乱れているが、それでも距離によって並べ替えられません。

私は5.2.0と、この問題に関連して5.2.8の間に固定されPHPのバグへの参照を見つけることができません。

ここで、この問題から来るかもしれませんか?私は、ソート機能を自分で書くのこれは短い修正することはできますか?

役に立ちましたか?

解決

唯一あなたがこれを使用しなければならないということである私は考えることができると思います

usort($locations, array('Interpolator', 'sortByDistance'));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top