4.17 Ein Array über ein berechnetes Feld sortieren
Problem
Sie möchten eine eigene Sortierroutine definieren.
Lösung
Verwenden Sie usort()
in Kombination mit einer benutzerdefinierten Vergleichsfunktion:
// In umgekehrte natürliche Anordnung sortieren. function natrsort($a, $b) { return strnatcmp($b, $a); } $tests = array('test1.php', 'test10.php', 'test11.php', 'test2.php'); usort($tests, 'natrsort');
Diskussion
Die Vergleichsfunktion muss einen Wert größer als 0 liefern, wenn $a > $b
, 0,
wenn $a == $b,
und einen Wert kleiner als 0, wenn $a < $b
ist. Bei einer umgekehrten Sortierung tut sie das Gegenteil. Die Funktion strnatcmp()
in der Lösung folgt diesen Regeln.
Um die Sortierung umzukehren, multiplizieren Sie die Rückgabewerte von strnatcmp($a, $b) ...
Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.