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
  • DGUV V3
  • DGUV 3
  • CasinoAndy Finland
  • Casinopilot24.com
  • Neueonline-Casinos.com
  • CasinoHEX.at
  • Decasinos.de
  • Privatkredit247.com
  • Online Casino Spielautomaten
  • Casinofrog.com
  • parhaatuudetkasinot.com

Hoster – Geringste Ausfallzeit

  1. webgo Ø 0 Min.
  2. Linevast Ø 3 Min.
  3. netcup Ø 3 Min.
  4. dogado Ø 6 Min.
  5. Mittwald Ø 9 Min.
  6. All-Inkl.com Ø 10 Min.
  7. manitu Ø 10 Min.
  8. bplaced Ø 11 Min.
  9. checkdomain Ø 11 Min.
  10. Host Europe Ø 14 Min.
» Mehr erfahren

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2022

Um dich beim Lernen von PHP und MySQL zu unterstützen verwenden wir Cookies. OK Weitere Infos
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Notwendige
immer aktiv

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Nicht notwendige

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.