www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Arrays » Sortieren von Arrays

Sortieren von Arrays in PHP: sort, rsort, asort, ksort

Es gibt einige Funktionen bei PHP, um Arrays zu sortieren:

sort
(engl. sortieren) sortiert ein Array nach dem Wert aufsteigend

rsort
(engl. reverse sort - umgekehrte Sortierung) - sortiert ein Array nach dem Wert absteigend

PHP-Quellcode: Array sortieren nach aufsteigendem Wert
<?php
$betriebssystem[] = "Windows";
$betriebssystem[] = "Linux";
$betriebssystem[] = "Solaris";

sort ( $betriebssystem );

$anzahl = count ( $betriebssystem );
echo "Es gibt $anzahl Einträge:";
echo "<ul>";

for ($x = 0; $x < $anzahl; $x++ )
{
    echo "<li>Eintrag von $x ist $betriebssystem[$x] </li>";
}
echo "<pre>";
print_r ($betriebssystem );
?>

Der Befehl print_r bewirkt eine komplette Ausgabe des Inhalts einer Variable, bzw. eines Arrays. Es ist eine gute Idee, davor durch ein <pre> eine preformatierte (Ausgabe aller Leerzeichen und Umbrüche) zu erzwingen.

Beachten Sie die Indizes. Bei sort und rsort werden die ursprünglichen Indizes aufgehoben.

Aufgabe: sort und Indizes

Zeigen Sie, dass sich die Indizes durch die Nutzung von sort ändern.

Sortierung von Arrays mit Beibehalten der Indizes

Im Gegensatz zu sort bleibt die Zuordnung des Index erhalten. D.h. wenn z. B. vor dem Sortieren ein Eintrag die Index-Nummer 2 hat, hat dieser auch nach dem Sortieren noch dieselbe Index-Nummer.

asort
sortiert ein Array nach dem Wert aufsteigend, Indexverbindungen werden beibehalten

arsort
wie sort, nur absteigend

PHP-Quellcode: Array sortieren mit Beibehalten der Indizes
<?php
$betriebssystem[] = "Windows";
$betriebssystem[] = "Linux";
$betriebssystem[] = "Solaris";

asort ( $betriebssystem );

$anzahl = count ( $betriebssystem );
echo "Es gibt $anzahl Einträge:";
echo "<ul>";

for ($x = 0; $x < $anzahl; $x++ )
{
    echo "<li>Eintrag von $x ist $betriebssystem[$x] </li>";
}

echo "<pre>";
print_r ($betriebssystem );
?>

sortiert das Array nach dem Index

ksort
sortiert das Array nach dem Index

krsort
wie ksort, nur absteigend

Dies macht natürlich bei "Assoziativem Array" oft mehr Sinn.

PHP-Quellcode: Array sortieren nach dem Index
<?php
$betriebssystem[4] = "Windows";
$betriebssystem[9] = "Linux";
$betriebssystem[1] = "Solaris";

ksort ( $betriebssystem );

$anzahl = count ( $betriebssystem );
echo "Es gibt $anzahl Einträge:";
echo "<ul>";

for ($x = 0; $x < $anzahl; $x++ )
{
    echo "<li>Eintrag von $x ist $betriebssystem[$x] </li>";
}

echo "<pre>";
print_r ($betriebssystem );
?>

Aufgabe

Warum klappt bei dem letzten Beispiel die Aufzählung der Betriebssysteme nicht? Bei der Ausgabe kommen 2-mal leere Werte!

Korrigieren Sie das Beispiel.

Aufgabe:

Lassen Sie die Autokennzeichenkürzel und die Städte für

  • B - Berlin
  • S - Stuttgart
  • TÜ - Tübingen
  • M - München
  • MZ - Mainz

über ein assoziatives Array in folgenden Sortierungen ausgeben:

  • sort
  • rsort
  • ksort

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe