PHP verfügt über ein Dutzend verschiedene Sortierfunktionen für Arrays, aber gelegentlich möchte ich ein assoziatives Array nach einem Feld im Array sortieren. Am einfachsten geht das mit einer Hilfsfunktion und usort
:
function sortierNachFeld($a, $b) {
return strnatcmp($a['feldname'], $b['feldname']);
}
usort($meinArray, 'sortierNachFeld');
Die eigentliche Vergleichsfunktion (Hier: strnatcmp
) muss ich natürlich den Anforderungen jeweils anpassen.
Etwas unschön ist der hardgecodete Name des Feldes ('feldname'
). Aber ich wüsste nicht wie man diesen flexibel ohne den hässlichen Umweg über globale Variabeln übergeben könnte.