So verwenden Sie die asort()-Funktion in PHP zum Sortieren von Arrays
Erfahren Sie, wie Sie die PHP-Funktion asort() nutzen, um Arrays aufsteigend nach Werten zu sortieren und dabei Schlüssel-Wert-Zuordnungen zu erhalten.
Als Webentwickler stehen Sie möglicherweise vor der Situation, Arrays in Ihrem PHP-Code bearbeiten zu müssen. Eine solche Operation ist das Sortieren des Arrays. Die eingebaute Funktion asort() in PHP kann verwendet werden, um ein array nach seinen Werten in aufsteigender Reihenfolge zu sortieren. In diesem Artikel erklären wir, wie Sie die Funktion asort() einsetzen, ihre Syntax und Beispiele für den Einsatz in Ihrem Code.
Syntax von asort()
Die Funktion asort() sortiert ein array aufsteigend nach seinen Werten und behält dabei die Schlüssel-Wert-Zuordnungen bei. Die Syntax der Funktion lautet:
Syntax der asort-Funktion
asort($array, $sorting_type);Das erste Argument $array ist das zu sortierende array. Das zweite Argument $sorting_type ist optional und gibt den Sortiertyp an. Mögliche Werte sind:
SORT_REGULAR- Elemente normal vergleichenSORT_NUMERIC- Elemente numerisch vergleichenSORT_STRING- Elemente als string vergleichenSORT_LOCALE_STRING- Elemente als string basierend auf dem aktuellen Gebietsschema vergleichen
Wenn der Parameter $sorting_type nicht angegeben wird, wird standardmäßig SORT_REGULAR verwendet. Beachten Sie, dass asort() das ursprüngliche array in place ändert und bei Erfolg true zurückgibt oder bei Misserfolg false — es gibt kein neues sortiertes array zurück. Schreiben Sie daher nicht $sorted = asort($array) in der Erwartung, die sortierten Daten in $sorted zu erhalten.
Wann sollte man asort() verwenden?
Das Entscheidende, was asort() von dem einfachen sort() unterscheidet, ist, dass es jeden Wert mit seinem ursprünglichen Schlüssel verbunden hält. Verwenden Sie asort(), wenn die Schlüssel eine Bedeutung tragen, die Sie nicht verlieren dürfen — zum Beispiel ein assoziatives array, das Namen zu Punktzahlen, IDs zu Preisen oder Benutzernamen zu Zeitstempeln der letzten Anmeldung zuordnet. Wenn Sie solche Daten mit sort() sortieren, verwirft PHP die Schlüssel und indiziert das array neu als 0, 1, 2, …, wodurch die Zuordnung zerstört wird.
Greifen Sie stattdessen nur dann auf sort() zurück, wenn das array eine einfache Liste ist und die Schlüssel lediglich Positionen sind, die keine Rolle spielen.
Beispiele für asort()
Hier sind einige Beispiele, die zeigen, wie Sie die Funktion asort() in PHP einsetzen:
- Sortieren eines string-Arrays mit
asort():
Beispiele für asort()
- Sortieren eines Arrays von Ganzzahlen mit
asort():
Sortieren eines Arrays von Ganzzahlen mit asort()
- Sortieren eines assoziativen Arrays mit
asort():
PHP: Sortieren eines assoziativen Arrays mit asort()
Häufige Fallstricke
- Verwenden Sie
SORT_NUMERICfür numerische Strings. Mit dem StandardSORT_REGULARkönnen Werte wie"10"und"9"als string verglichen werden, wodurch"10"vor"9"eingeordnet wird. Übergeben SieSORT_NUMERIC, wenn Ihre Werte Zahlen sind (auch wenn sie als string gespeichert sind), um eine numerische Reihenfolge sicherzustellen. - Die Sortierung ist vor PHP 8.0 nicht stabil. In PHP 8.0 und höher behalten gleiche Elemente ihre ursprüngliche relative Reihenfolge; in früheren Versionen war ihre Reihenfolge undefiniert.
- Es gibt einen boolean-Wert zurück, nicht das array. Da die Sortierung in place erfolgt, behandeln Sie die ursprüngliche Variable als Ergebnis.
Verwandte Sortierfunktionen
PHP bietet eine Familie von array-Sortierfunktionen, die Schlüssel jeweils unterschiedlich beibehalten (oder verwerfen) und nach Wert oder Schlüssel sortieren:
sort()— nach Wert aufsteigend sortieren, Schlüssel neu indizieren.rsort()— nach Wert absteigend sortieren, Schlüssel neu indizieren.arsort()— wieasort(), aber absteigend, mit Beibehaltung der Schlüsselzuordnungen.ksort()/krsort()— nach Schlüssel aufsteigend / absteigend sortieren.usort()/uasort()— mit einem benutzerdefinierten Vergleichs-Callback sortieren.
Weitere Informationen finden Sie in der Übersicht Sorting Arrays mit einem direkten Vergleich.
Fazit
Die Funktion asort() ist ein nützliches Werkzeug zum Sortieren von Arrays in PHP nach ihren Werten in aufsteigender Reihenfolge unter Beibehaltung der Schlüssel-Wert-Zuordnungen. Sie ist besonders dann hilfreich, wenn Ihre Schlüssel eine Bedeutung tragen — etwa beim Sortieren eines assoziativen Arrays von Namen zu Punktzahlen oder IDs zu Preisen — wo das einfache sort() diese Schlüssel verwerfen würde. Wenn Sie Syntax, Sortiertypen und die verwandten Sortierfunktionen kennen, können Sie für jede Sortieraufgabe das richtige Werkzeug wählen und saubereren PHP-Code schreiben.