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;
usort-Beispiel
$value) {
echo "$key: $value\n";
}
?>
]]>
&example.outputs;
Für dieses einfache Beispiel wäre die
sort-Funktion offensichtlich
die bessere Wahl.
usort-Beispiel für multidimensionale Arrays
]]>
Wenn ein mehrdimensionales Array sortiert wird, enthalten
$a und $b Verweise auf den
ersten Index des Arrays.
&example.outputs;
usort-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;