我们写了一些代码,涉及usort这对我们的发展系统(PHP 5.2.8)工作正常,但遇到我们的直播系统(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