(PHP 4, PHP 5, PHP 7, PHP 8)
uasort — Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Index-Assoziationen bei
Diese Funktion sortiert array
so, dass die Beziehung der Indizes zu den Arrayelementen, denen sie zugeordnet sind, beibehalten bleibt. Dabei wird eine vom Benutzer definierte Vergleichsfunktion benutzt.
Dies wird hauptsächlich bei assoziativen Arrays angewandt, wenn die aktuelle Reihenfolge der Arrayelemente signifikant ist.
Hinweis:
Wenn zwei Mitglieder als identisch verglichen werden, behalten sie ihre ursprüngliche Reihenfolge bei. Vor PHP 8.0.0 war die relative Sortierung im sortierten Array nicht definiert.
Hinweis:
Setzt den internen Zeiger des Arrays auf das erste Element zurück.
array
Das zu sortierende Array.
callback
Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.
Wenn die Vergleichsfunktion nicht-ganzzahlige Werte zurückgibt, z. B. vom Typ float, wird der Rückgabewert des Callbacks intern in den Typ int umgewandelt. Werte wie 0.99
und 0.1
werden also beide in einen Integer-Wert von 0
umgewandelt, wodurch diese Werte als gleichwertig eingestuft werden.
Gibt immer true
zurück.
Version | Beschreibung |
---|---|
8.2.0 | Der Rückgabewert ist nun true vorher war es bool. |
8.0.0 | Wenn callback einen per Referenz übergebenen Parameter erwartet, gibt diese Funktion nun einen Fehler der Stufe E_WARNING aus. |
Beispiel #1 Einfaches uasort()-Beispiel
<?php
// Vergleichsfunktion
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// Zu sortierendes Array
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);
// Sortieren und Ausgeben des Arrays
uasort($array, 'cmp');
print_r($array);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array ( [a] => 4 [b] => 8 [c] => -1 [d] => -9 [e] => 2 [f] => 5 [g] => 3 [h] => -4 ) Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 )