Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 

Arrays mit von PHP zur verfügung gestellten Funktionen sortieren

Sie befinden sich: Home > Php > Arrays sortieren

Um Arrays sortieren zu können bietet PHP einige sehr komfortable Funktionen an. Da diese Funktionen praktisch selbsterklärend sind folgen ein paar Beispiele mit den dazugehörigen Ausgaben.

<?php
$array
= $array2 = array("bild12.gif", "bild10.gif",
"bild2.gif", "bild1.gif");
sort($array);
echo
"<i>Ausgabe von \$array, Standard mit sort()</i><br>";
echo
'<pre>',print_r($array,true),'</pre>';
natsort($array2);
echo
"<br><i>Beispiel von \$array2, natürlich
mit natsort()</i><br>"
;
echo
'<pre>',print_r($array2,true),'</pre>';
?>

Dieses Programm liefert folgende Ausgabe :

Ausgabe von $array, Standard mit sort()
Array
(
[0] => bild1.gif
[1] => bild10.gif
[2] => bild12.gif
[3] => bild2.gif
)

Beispiel von $array2, natürlich mit natsort()
Array
(
[3] => bild1.gif
[2] => bild2.gif
[1] => bild10.gif
[0] => bild12.gif
)

Es ist einfach zu erkennen das die natürliche Sortierung einer im Alltag üblichen gleicht. Betriebsysteme sortieren gelegentlich Dateien nach der Standardmethode so das es Anfängern oft schwer füllt Dateien zu finden.

Um Arrays sortieren zu können die über Feldindizes verfügen findet die Funktion sort() anwendung. Im nachfolgenden Beispiel verwende ich eine foreach Schleife um das Array auszugeben.

Beispiel mit sort():

Sortierung von kleiner nach größer auf den Feldinhalten bezogen und Schlüsselassoziationen werden nicht beibehalten.

<?php
$text
= array("Ich", "bin", "ein", "testtext");
sort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Das sortierte Array würde wie folgt ausgegeben.

Ausgabe mit sort():

text[0] = Ich
text[1] = bin
text[2] = ein
text[3] = testtext

Um rekursiv zu sortieren, wird die PHP Funktion rsort() verwendet.

Beispiel für rsort():

Sortierung von größer nach kleiner auf den Feldinhalten bezogen und Schlüsselassoziationen werden nicht beibehalten.

<?php
$text
= array("Ich", "bin", "ein", "testtext");
rsort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Für das rsort() Beispiel sähe die Ausgabe dann so aus.

Die Ausgabe mit rsort():

text[0] = testtext
text[1] = ein
text[2] = bin
text[3] = Ich

Da PHP die Möglichkeit bietet assoziative Feldindizes zu verwenden gibt es eine spezielle Funktion ( inclusive einer rekursiven Funktion ) um diese zu sortieren.

Beispiel mit ksort():

Array sortiert von kleiner nach größer auf die Feldindizes bezogen und Schlüsselassoziationen werden beibehalten.

<?php
$text
= array("d"=>"Ich", "a"=>"bin",
"c"=>"ein", "b"=>"testtext");
ksort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Sortiert ausgegeben mit ksort():

text[a] = bin
text[b] = testtext
text[c] = ein
text[d] = Ich

Beispiel mit krsort():

Array sortiert von größer nach kleiner auf die Feldindizes bezogen und Schlüsselassoziationen werden beibehalten.

<?php
$text
= array("d"=>"Ich", "a"=>"bin",
"c"=>"ein", "b"=>"testtext");
krsort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Rekursiv Ausgabe mit krsort():

text[d] = Ich
text[c] = ein
text[b] = testtext
text[a] = bin

Grade bei Verwendung von assoziativen Arrays kommt es häufiger vor das nicht nach Indizes sortiert werden soll, sondern nach den Feldinhalten selber. Um dies zu erreichen verwendet man asort() oder rekursiv arsort()

Beispiel mit asort():

Sortierung von kleiner nach größer auf den Feldinhalten bezogen und Schlüsselassoziationen werden beibehalten.

<?php
$text
= array("d"=>"Ich", "a"=>"bin",
"c"=>"ein", "b"=>"testtext");
asort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Sortiert ausgegeben mit asort():

text[d] = Ich
text[a] = bin
text[c] = ein
text[b] = testtext

Beispiel mit arsort():

Sortierung von größer nach kleiner auf den Feldinhalten bezogen und Schlüsselassoziationen werden beibehalten.

<?php
$text
= array("d"=>"Ich", "a"=>"bin",
"c"=>"ein", "b"=>"testtext");
arsort($text);
foreach (
$text as $key => $val) {
echo
"text[" . $key . "] = " . $val.'<br>';
}
?>

Rekursiv Ausgabe mit arsort():

text[b] = testtext
text[c] = ein
text[a] = bin
text[d] = Ich

Eine Beschreibung der Funktionen uksort() und uasort(), die ebenfalls von PHP bereit gestellt werden, bei denen man eigene Algorithmen angeben kann nach denen die Arrays sortiert werden sollen, würden den Rahmen dieser Abhandlung sprengen, zumal hierfür Vergleichsfunktionen geschrieben werden müssten.

Man kann ein Array auch über einen so genannten Bubblesort sortieren. Dieser verbraucht aber Ressourcen und man sollte lieber die von PHP zur Verfügung gestellten Funktionen verwenden. Wenn Sie noch weitere Fragen zu der Sortierung von einen Array haben, so können Sie direkt in unserem Forum Ihre Frage stellen.

Auf der nachfolgenden Seite wird Ihnen erklärt, wie Sie ein mehrdimensionales Array sortieren können. Es wird hierzu die PHP Function array_multisort() verwendet.



weiter if Anweisung in Php