Suchen:
  • Impressum
  • Kontakt
  • Startseite
Effekt! Softwareentwicklung
  • Themen

    • Suchmaschinenoptimierung (SEO)
    • Usability
    • Projektplanung
    • Unterschiede
    • 10 Tipps zur Webseitenerstellung
  • Tutorials

    • Datum mit PHP
    • Uhrzeit mit PHP/AJAX
    • Feiertage ermitteln mit PHP
    • Arrays sortieren
    • Arrays und Iteratoren
    • Paypal-Buttons integrieren
    • Google Maps einbinden
    • Zufallsbanner mit Javascript
    • Effekte mit CSS3
    • Herausfahrendes Fenster mit jQuery
  • Tools

    • MD5-Hash-Generator
Startseite
Arrays sortieren

Arrays sortieren

Arrays (Felder) sind ein wichtiger Bestandteil in der Programmierung. Wir unterscheiden dabei zwischen numerisch indizierten und assoziativen Arrays. Diese lassen sich durch PHP-Funktionen leicht sortieren. Wie das genau funktioniert, lesen Sie im folgenden Beitrag..

Feiertage ermitteln mit PHP
 
Arrays und Iteratoren

Numerisch indiziertes Array

Wie sich aus der folgenden Grafik entnehmen lässt werden hier die Werte hintereinander in ein Array geschrieben (Zeile 4). Nicht zu sehen ist, dass jeder Wert einen Index (laufende Nummer) enthält, der erste Wert (86) beginnt mit 0 (das ist bei jedem numerisch indizierten Array der Fall), der zweite (34) hat den Index 1, usw.. der Index wird also immer um 1 erhöht (inkrementiert).

Numerisches Array sortieren

Wir zählen zuerst die Werte, insgesamt sind es sechs in diesem Beispiel. Wir weisen das Array der Variable $array zu und lassen diese mit der Funktion sort() sortieren. Mit einer for-Schleife können wir diese Werte nun ausgeben, dabei beginnt $i mit 0, da der Index des ersten Wertes = 0 ist. Insgesamt wird diese Schleife sechs mal durchlaufen bis der Index = 5 ist. Das Ergebnis lautet: 5 11 19 34 86 117.

Assoziatives Array

In einem assoziativen Array sind im Vergleich zu einem numerisch indizierten Array die Werte nicht einer laufenden Nummer, sondern einem Schlüssel zugeordnet. Es besteht die Möglichkeit sowohl nach dem Schlüssel als auch nach dem Wert zu sortieren. Zuerst die Variante mit dem Schlüssel..

Assoziatives Array sortieren

Die Städte werden nun also in der Reihenfolge Paris - Rom - Berlin - London - Madrid sortiert. Dies hat die Funktion ksort() bewirkt. Der Schlüssel muss nicht zwangsläufig eine Zahl sein, es kann sich dabei auch um ein Wort handeln. Zu beachten ist dabei allerdings dass es sich um gleiche Datentypen handelt, also entweder sind alle Schlüssel Integer-Zahlen oder Strings (Zeichenketten). Schauen wir uns jetzt einmal den anderen Fall an..

Assoziatives Array sortieren

Die Funktion asort() sortiert das Array jetzt alphabetisch nach den Städten. Ausgegeben werden die Werte jeweils in einer for-each-Schleife. Das Erebnis ist nun die Reihenfolge Berlin - London - Madrid - Paris - Rom.

Multidimensionales zeilenorientiertes Array

Arrays können auch mehrdimensional (verschachtelt) sein, aber auch das ist kein Problem. Das multidimensionale zeilenorientierte Array soll in diesem Beispiel nach der ID sortiert werden. Dazu erstellen wir eine Funktion compare(), welche die Werte vergleichen soll. Für diesen Vergleich gibt es mittlerweile die Standardfunktion strnatcasecmp(), die diesen Schritt für uns übernimmt. Wir müssen ihr ledigleich mitteilen was vergleichen werden soll. Da nun nach der ID sortiert wird und diese an zweiter Stelle steht, tragen wir eine 1 ein.

Multidimensionales zeilenorientiertes Array sortieren

Wären die Städte das Sortierungskriterium, müsste es so aussehen: return strnatcasecmp($a[0], $b[0]). Anschließend sortieren wir das Array mit usort() und lassen uns die Liste der Städte ausgeben ($array3[$i][0]). Sollen anstatt der Städte die dazugehörigen Länder ausgeben werden müsste es so geschrieben sein: echo $array3[$i][2]. Die for-Schleife wird insgesamt fünf mal durchlaufen (von 0 bis 4), da es sich um fünf Datensätze (Arrays) handelt.

Multidimensionales spaltenorientiertes Array

Im multidimensionalen spaltenorientierten Array ist die Struktur zwar anders, aber das angegebene Beispiel liefert das gleiche Ergebnis..

Multidimensionales spaltenorientiertes Array sortieren

Sortiert wird mit der Funktion array_multisort(), hier in diesem Beispiel liegt die primäre Sortierung auf der ID. Falls die Werte gleich sein sollten wird sekundär nach Städten sortiert. In der Zeile 39 sollen in einer for-Schleife, die ebenfalls fünf mal durchlaufen wird, die Städte ausgegeben werden. Wollen wir uns die Länder ausgeben lassen, sieht das Ganze so aus: $array4['land'][$i].

Script herunterladen

Arrays sortieren

Verwendete Technologien

PHP
Feiertage ermitteln mit PHP
nach oben
Arrays und Iteratoren
© 2010-2011 Effekt! - Softwareentwicklung | Letzte Aktualisierung: 15.12.2011 - 15:40 Uhr