Question

Nous avons écrit un code impliquant usort qui fonctionne très bien sur nos systèmes de développement (PHP 5.2.8), mais éprouvent un problème sur nos systèmes en direct (PHP 5.2.0):

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

appelle la méthode (dans la même classe Interpolateur):

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

Sur nos systèmes en direct, ce retourne un tableau trié complètement arbitraire, l'ordre d'origine est perturbée, mais pas encore classifiées selon la distance.

Je ne peux trouver aucune référence à un bug PHP fixe entre 5.2.0 et 5.2.8 correspondant à ce problème.

Si ce problème vient peut-être? Puis-je résoudre ce problème à court d'écrire moi-même fonction de tri?

Était-ce utile?

La solution

La seule chose que je peux penser est que vous devriez utiliser ceci:

usort($locations, array('Interpolator', 'sortByDistance'));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top