Sortieren von Arrays

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 aufsteigenden 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 asort, 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
eBook PHP-Kurs.com

Video-Tutorial: über 200 Videos, Gesamtspielzeit über 23 Stunden
Jetzt Video-Kurs PHP-Tutorial auf DVD bestellen

PHP Videokurs - programmieren lernen einfach