我们编写了一些涉及usort的代码,它在我们的开发系统(PHP 5.2.8)上工作正常,但在我们的实时系统上遇到问题(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错误的引用。
这个问题可能来自哪里?我可以解决这个问题吗?我自己编写一个排序函数吗?
答案 0 :(得分:3)
我能想到的唯一想法是你应该使用它:
usort($locations, array('Interpolator', 'sortByDistance'));