Neden bu usort () fonksiyonu PHP bazı sürümlerinde başarısız?

1 Cevap php

Biz geliştirme sistemleri üzerinde çalışıyor hangi usort (PHP 5.2.8) ile ilgili bazı kodlar yazdım, ama bizim canlı sistemleri (PHP 5.2.0) bir sorunla karşılaşan:

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

(aynı sınıf Interpolator içinde) yöntemini çağırır:

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;
}

Bizim canlı sistemlerde, bu tamamen keyfi kriteri dizi, orijinal düzen bozulur verir, ama yine de mesafeye göre sıralanır.

Ben 5.2.0 ve bu sorun ile alakalı 5.2.8 arasına sabit bir PHP hata için herhangi bir başvuru bulamıyor.

Nerede bu sorun geliyor olabilir? Ben bu bir sıralama fonksiyonunu kendimi yazma kısa düzeltebilirim?

1 Cevap

Keşke bunu kullanıyor olmalıdır olduğunu düşünüyorum düşünüyorum:

usort($locations, array('Interpolator', 'sortByDistance'));