W3docs

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 vergleichen
  • SORT_NUMERIC - Elemente numerisch vergleichen
  • SORT_STRING - Elemente als string vergleichen
  • SORT_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:

  1. Sortieren eines string-Arrays mit asort():

Beispiele für asort()

php— editable, runs on the server
  1. Sortieren eines Arrays von Ganzzahlen mit asort():

Sortieren eines Arrays von Ganzzahlen mit asort()

php— editable, runs on the server
  1. Sortieren eines assoziativen Arrays mit asort():

PHP: Sortieren eines assoziativen Arrays mit asort()

php— editable, runs on the server

Häufige Fallstricke

  • Verwenden Sie SORT_NUMERIC für numerische Strings. Mit dem Standard SORT_REGULAR können Werte wie "10" und "9" als string verglichen werden, wodurch "10" vor "9" eingeordnet wird. Übergeben Sie SORT_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() — wie asort(), 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.

Übungen

Übung
Was macht die Funktion asort() in PHP?
Was macht die Funktion asort() in PHP?
Was this page helpful?