PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Forum

Arrays sortieren

10. Februar 2020
  1. Home
  2. »
  3. PHP Tutorial
  4. »
  5. Arrays
  6. »
  7. Arrays sortieren

PHP besitzt verschiedene Möglichkeiten um Arrays zu sortieren. Ihr könnt Arrays entweder nach den Werten sortieren, z.B. diese alphabetisch aufsteigend sortieren, oder bei assoziativen Arrays diese wahlweise auch nach dem Schlüssel sortieren.

Funktion Sortiert nach Kompatibel mit assoziativen Arrays Sortierreihenfolge
asort() Wert Ja a - z
arsort() Wert Ja z - a
ksort() Schlüssel Ja a - z
krsort() Schlüssel Ja z - a
natsort() Wert Ja a - z (natürliche Reihenfolge)
natcasesort() Wert Ja a - z (natürliche Reihenfolge
ohne Groß- und Kleinschreibung)
sort() Wert Nein a - z
rsort() Wert Nein z - a
shuffle() - Nein Zufälliges Mischen

Inhaltsverzeichnis

  • 1 Werte eines Arrays sortieren
  • 2 Schlüsselassoziierung beim Sortieren beibehalten
  • 3 Natürliche Sortierung eines Arrays
  • 4 Schlüssel eines Arrays sortieren

Werte eines Arrays sortieren

Möchte man die Werte eines Arrays sortieren, verwendet man die Funktionen sort für eine aufsteigende Reihenfolge (a,b,c,d usw.) und rsort für eine absteigende Reihenfolge (z,y,x,w usw.).

Beispiel:

<?php
$mitarbeiter = array("Klaus","Arnie","Willi");

//Array sortieren
sort($mitarbeiter);

//Array ausgeben
echo "Ausgabe per foreach-Schleife: <br>";
foreach($mitarbeiter AS $name) {
   echo "$name <br>";
}
?>

Hier wird per sort() das Array in aufsteigender Reihenfolge sortiert und danach mit einer foreach-Schleife ausgegeben.

Schlüsselassoziierung beim Sortieren beibehalten

Die Funktionen sort() und rsort() behalten eine mögliche Schlüsselassoziierung nicht bei. Dies kann Vor- als auch Nachteile haben. Die Funktionen asort() und arsort() dagegen behalten die Assoziierung mit einem Schlüssel bei:

<?php
$namen = array("Gerhard" => "Schröder", "Angela" => "Merkel", "Helmut" => "Kohl");

$namenSort = $namen;
$namenAsort = $namen;

sort($namenSort);
echo "Sortiert mittels sort: <br>";
print_r($namenSort);


asort($namenAsort);
echo "<br> Sortiert mittels asort: <br>";
print_r($namenAsort);
?>

Wie ihr im obigen Beispiel seht, werden bei sort() die Schlüssel gelöscht. Danach kann man nur noch über den Index auf die Werte zugreifen. Bei asort() sind die Schlüssel weiter existent.

Bei nicht assoziativen Arrays ergibt sich ebenfalls ein etwas unterschiedliches Verhalten:

<?php
$namen = array("Gerhard Schröder", "Angela Merkel", "Helmut Kohl");

$namenSort = $namen;
$namenAsort = $namen;

sort($namenSort);
echo "Sortiert mittels sort: <br>";
print_r($namenSort);

echo '<br> Ausgabe von sort($namen) mittels for-Schleife:<br>';
for($i=0;$i<count($namenSort);$i++) {
  echo '$nameSort['.$i.'] = '.$namenSort[$i]."<br>";
}

asort($namenAsort);
echo "<br> Sortiert mittels asort: <br>";
print_r($namenAsort);

echo '<br> Ausgabe von asort($namen) mittels for-Schleife:<br>';
for($i=0;$i<count($namenAsort);$i++) {
  echo '$nameAsort['.$i.'] = '.$namenAsort[$i]."<br>";
}
?>

Wie ihr im obigen Beispiel seht, könnt ihr wenn ihr asort() verwendet nicht mittels for-Schleife durch das Array iterieren. Da die Schlüsselassoziierungen beibehalten wurden, ist die Ausgabe in dem Fall nicht mehr sortiert. Ihr müsst bei normalen Arrays entsprechend sort() nutzen oder auf die foreach-Schleife zurückgreifen.

Natürliche Sortierung eines Arrays

Neben der Funktionen sort() existieren in PHP noch die Funktionen natsort() und natcasesort() die eine natürliche Sortierung der Texte durchführt. Der Unterschied kommt bei Zahlen zu tragen:

<?php
$bilder = array("img12.png", "img10.png", "img2.png", "img1.png");

sort ($bilder);
echo "Standardsortierung <br>";
print_r ($bilder);

natsort ($bilder);
echo "<br> Sortieren mit natürlicher Reihenfolge<br>";
print_r ($bilder);
?>

Bei sort() werden die Element img10.png und img12.png vor das Element img2.png sortiert, da die Zahl 1 in der Sortierung vor der Zahl 2 kommt. Bei natsort() werden Zahlen berücksichtigt und die Zahl 2 wird vor der Zahl 10 sortiert.

Bei der Funktion natcasesort() wird die Groß- und Kleinschreibung nicht berücksichtigt. Ansonsten bei alle anderen Sortier-Funktionen komme Großbuchstaben vor Kleinbuchstaben.

Schlüssel eines Arrays sortieren

Um die Schlüssel (mit deren Werte) zu sortieren, verwendet man ksort() oder krsort() . ksort() sortiert dabei die Schlüssel aufsteigend (von a nach z) und krsort() sortiert die Schlüssel eures Arrays absteigend (von z nach a):

<?php
$mitarbeiter = array(
"Klaus" => "Müller",
"Anna" => "Schmidt",
"Lena" => "Meier");

//Array sortieren
ksort($mitarbeiter);

//Array ausgeben
echo "Ausgabe des Arrays mittels foreach-Schleife: <br>";
foreach($mitarbeiter AS $vorname => $nachname) {
   echo "$vorname $nachname <br>";
}
?>

Autor: Nils Reimers
Zurück: foreach-Schleife
Weiter: Dateien lesen

PHP Tutorial

  • Installation
  • Webspace
  • Erste Schritte
  • Text ausgeben per echo
  • Kommentare
  • Variablen
  • Rechnen mit Variablen
  • $_GET und $_POST
  • if-Anweisungen
  • Vergleichsoperatoren
  • Logische Operatoren
  • Übungsaufgaben
  • while-Schleife
  • for-Schleife
  • Arrays
    • Elemente durchlaufen
    • foreach-Schleife
    • Arrays sortieren
  • Dateien lesen
  • Dateien schreiben
  • Datum und Uhrzeit
  • E-Mails mit PHP versenden
  • Suchen und Ersetzen
  • Sessions
  • Eigene Funktionen
  • Andere PHP Dateien einbinden
  • Dateiupload
  • Cookies
  • Konstanten
  • Reguläre Ausdrücke
  • Überblick: Wichtige PHP Funktionen
Mit freundlicher Unterstützung von:
  • Punkt191 Werbeagentur

Hoster – Geringste Ausfallzeit

  1. netcup Ø 0 Min.
  2. webgo Ø 0 Min.
  3. Linevast Ø 3 Min.
  4. All-Inkl.com Ø 3 Min.
  5. checkdomain Ø 4 Min.
  6. dogado Ø 6 Min.
  7. Strato Ø 8 Min.
  8. manitu Ø 10 Min.
  9. 1&1 Ø 10 Min.
  10. DomainFactory Ø 14 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2025

Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Anbieter verwalten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}