PHP: Array-Iterationen

Erste Schritte – PHP: Array-Iterationen & Sortierfunktionen

In PHP stehen dir zahlreiche Möglichkeiten zur Verfügung, um Arrays zu iterieren und
sortieren. Ob du ein simples indexbasiertes Array oder ein assoziatives Array hast –
es gibt eine passende Funktion zum Durchlaufen und Reorganisieren der Elemente.
In diesem Tutorial werfen wir einen Blick auf gängige Methoden und Funktionen,
damit du deine Arrays bequem verarbeiten kannst.

1. Array-Iterationen mit foreach und Co.

Um Arrays in PHP zu durchlaufen, stehen mehrere Schleifentypen zur Verfügung.
Während du for und while benutzen kannst, ist foreach in den meisten Fällen das einfachste Mittel.

// Einfaches indexbasiertes Array
$fruechte = ["Apfel", "Banane", "Orange"];

// Durchlauf mit foreach
foreach ($fruechte as $frucht) {
    echo "Frucht: $frucht
"; }

Wenn du in einem assoziativen Array auch den Schlüssel brauchst,
kannst du in der foreach-Schleife zusätzlich den Key abfangen:

$person = [
    "name"  => "Lisa",
    "alter" => 25
];

foreach ($person as $key => $value) {
    echo "$key: $value
"; }

So kannst du effizient über die Werte iterieren, ohne
die Funktion count() oder durchnummerierte Indizes einsetzen zu müssen.
Auch mehrdimensionale Arrays lassen sich mit verschachtelten foreach-Schleifen durchlaufen.

2. sort, rsort – Indexbasierte Sortierung

sort($array) sortiert ein Array aufsteigend (alphanumerisch oder numerisch),
rsort($array) entsprechend absteigend.
Diese Funktionen ändern das Array direkt und verlieren dabei assoziative Keys.

// Numerisches Sortieren
$zahlen = [3, 1, 4, 2];
sort($zahlen); // [1, 2, 3, 4]

// Alphanumerisches Sortieren
$fruechte = ["Banane", "Apfel", "Orange"];
sort($fruechte); // ["Apfel", "Banane", "Orange"]

Beachte, dass sort() die ursprüngliche Reihenfolge ersetzt.
Wenn du Keys bewahren musst, nutze stattdessen asort() (siehe unten).

3. asort, arsort – Werterhaltende Sortierung

Wenn du assoziative Arrays hast und die Keys behalten möchtest,
verwendest du asort() (aufsteigend) oder arsort() (absteigend).

$preise = [
    "Apfel" => 1.99,
    "Banane" => 0.99,
    "Orange" => 1.49
];

asort($preise);
// Sortiert nach Werten: ["Banane" => 0.99, "Orange" => 1.49, "Apfel" => 1.99]

Hier wird das Array nach Preisen sortiert,
die Keys (z. B. „Banane“, „Orange“, „Apfel“) bleiben erhalten.

4. ksort, krsort – Schlüsselsortierung

Für assoziative Arrays kannst du alternativ nach den Keys statt nach den Werten sortieren.
ksort() ordnet die Keys aufsteigend, krsort() absteigend.

$personen = [
    "lisa" => 25,
    "anna" => 22,
    "max"  => 30
];

ksort($personen);
// ["anna" => 22, "lisa" => 25, "max" => 30]

5. natcasesort, natsort – Natürliche Sortierung

Manchmal möchtest du nicht einfach alphanumerisch sortieren,
sondern in einer menschlich empfundenen Reihenfolge (z. B. Datei-Listen 1, 2, 10 statt 1, 10, 2).
Hier helfen dir natsort() und natcasesort() (Case-Insensitiv).

$files = ["file10.txt", "file2.txt", "file1.txt"];
natsort($files);
// => ["file1.txt", "file2.txt", "file10.txt"] in natürlicher Reihenfolge

6. array_multisort für mehrere Kriterien

Wenn du nach mehreren Kriterien sortieren willst, oder ein mehrdimensionales Array
gemeinsam sortieren möchtest, kannst du array_multisort() einsetzen.
So sortierst du z. B. ein Array von Arrays simultan, indem du die Spalten parallel ordnest.

$namen = ["Lisa", "Anna", "Max"];
$alter = [25, 22, 30];

array_multisort($alter, SORT_ASC, $namen, SORT_ASC);

// Danach ist $alter => [22, 25, 30]
//              $namen => ["Anna", "Lisa", "Max"]

So kannst du an den korrespondierenden Positionen erkennen, dass
„Anna“ (22), „Lisa“ (25), „Max“ (30) nach dem Wert in $alter sortiert wurde.

7. array_map, array_filter, array_reduce

Nicht direkt Sortierfunktionen, aber immens hilfreich bei der Iteration
oder Transformation von Arrays:

  • array_map(callable, $array): wendet eine Funktion auf jedes Element an.
  • array_filter($array, callable): behält nur Elemente, für die die Callback-Funktion true ergibt.
  • array_reduce($array, callable, $initial): reduziert ein Array auf einen einzigen Wert,
    indem es die Elemente nacheinander anwendet (z. B. Summierung).

Beispiel: array_filter()

$werte = [1, -2, 3, -4, 5];

$positiv = array_filter($werte, function($x) {
    return $x > 0;
});
// $positiv => [1, 3, 5]

8. Fazit

Die Möglichkeiten, in PHP Arrays zu iterieren und zu sortieren, sind vielfältig:

  • Nutze foreach, um Arrays bequem zu durchlaufen.
  • Nutze sort, rsort (indexbasiert) oder asort, arsort (assoziative Key-Erhaltung),
    sowie ksort, krsort, um nach Schlüsseln zu ordnen.
  • natsort hilft bei natürlichen Sortierungen (z. B. für Dateinamen).
  • array_multisort bietet dir die Möglichkeit, mehrere Arrays parallel zu sortieren
    oder in mehrdimensionalen Strukturen nach mehreren Kriterien zu ordnen.

Dank dieser Funktionen lassen sich selbst komplexe Listen, Datensammlungen oder
Matrix-Daten strukturiert bearbeiten.
Gemeinsam mit den bekannten Schleifen und array_*-Hilfsfunktionen
bekommst du in PHP ein mächtiges Werkzeugset,
um Arrays jeglicher Form zu verarbeiten, filtern und sortieren.