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.