(PHP 4, PHP 5, PHP 7, PHP 8)
uksort — Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion
Diese Funktion sortiert array
nach seinen Schlüsseln
unter Verwendung einer benutzerdefinierten Vergleichsfunktion, um die
Reihenfolge zu bestimmen.
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 uksort()-Beispiel
<?php
function cmp($a, $b)
{
$a = preg_replace('@^(a|an|the) @', '', $a);
$b = preg_replace('@^(a|an|the) @', '', $b);
return strcasecmp($a, $b);
}
$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
uksort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
an apple: 3 a banana: 4 the Earth: 2 John: 1