Warum funktioniert das usort () - Funktion auf einigen Versionen von PHP scheitern?

StackOverflow https://stackoverflow.com/questions/561734

  •  05-09-2019
  •  | 
  •  

Frage

Wir schrieben einige Codes usort beteiligt, die auf unseren Entwicklungssystemen (PHP 5.2.8) funktionieren gut, sind aber ein Problem auf unsere Live-Systeme (PHP 5.2.0) erleben:

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

ruft die Methode (innerhalb der gleichen Klasse 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;
}        

Auf unseren Live-Systemen, dies gibt einen völlig willkürlich sortierte Array, wird die ursprüngliche Ordnung gestört, aber immer noch nicht nach der Entfernung sortiert.

Ich kann keinen Hinweis auf einen PHP-Fehler zwischen 5.2.0 und 5.2.8 relevant für dieses Problem fixierten finden.

Wo könnte dieses Problem aus kommen? Kann ich diese kurze fix eine Sortierfunktion selbst zu schreiben?

War es hilfreich?

Lösung

Das einzige, kann ich mir vorstellen, dass Sie diese verwenden sollten:

usort($locations, array('Interpolator', 'sortByDistance'));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top