開発システム(PHP 5.2.8)で正常に機能するUSORTを含むコードをいくつか書きましたが、ライブシステム(PHP 5.2.0)で問題が発生しています。
// Sort by distance
usort($locations, 'Interpolator::sortByDistance');
メソッドを呼び出します (同じクラス Interpolator 内で):
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 バグへの参照が見つかりません。
この問題はどこから発生している可能性がありますか? ソート関数を自分で書くことで、この短所を修正できますか?