usort Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion &reftitle.description; boolusort arrayarray callbackcmp_function Diese Funktion sortiert ein Array nach seinen Werten mittels einer benutzerdefinierten Vergleichsfunktion. Soll das Array nach nicht trivialen Kriterien sortiert werden, sollten Sie diese Funktion verwenden. Wenn zwei Elemente als gleich verglichen werden, ist ihre Reihenfolge im sortierten Array undefiniert. ¬e.no-key-association; &reftitle.parameters; array Das zu sortierende Array. cmp_function Die Vergleichsfunktion muss einen Integerwert kleiner als, gleich oder größer als 0 zurückgeben je nachdem ob das erste übergebene Argument kleiner als, gleich oder größer als das zweite ist. &reftitle.returnvalues; &return.success; &reftitle.changelog; &Version; &Description; 4.1.0 Es wurde ein neuer Sotieralgorithmus eingeführt, die Reihenfolge von Elementen die von cmp_function als gleich bewertet wurden bleibt nun nicht mehr erhalten. &reftitle.examples; <function>usort</function>-Beispiel $value) { echo "$key: $value\n"; } ?> ]]> &example.outputs; Für dieses einfache Beispiel wäre die sort-Funktion offensichtlich die bessere Wahl. <function>usort</function>-Beispiel für multidimensionale Arrays ]]> Wenn ein mehrdimensionales Array sortiert wird, enthalten $a und $b Verweise auf den ersten Index des Arrays. &example.outputs; <function>usort</function>-Beispiel, das die Methode eines Objekts benutzt name = $name; } /* Dies ist die statische Vergleichsfunktion */ static function cmp_obj($a, $b) { $al = strtolower($a->name); $bl = strtolower($b->name); if ($al == $bl) { return 0; } return ($al > $bl) ? +1 : -1; } } $a[] = new TestObj("c"); $a[] = new TestObj("b"); $a[] = new TestObj("d"); usort($a, array("TestObj", "cmp_obj")); foreach ($a as $item) { echo $item->name . "\n"; } ?> ]]> &example.outputs; &reftitle.seealso; uasort &seealso.array.sorting;