이 usort ()-함수가 일부 버전의 PHP에서 실패하는 이유는 무엇입니까?
문제
우리는 개발 시스템 (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'));
제휴하지 않습니다 StackOverflow