W3docs

Indizierte Arrays

Indizierte Arrays in PHP speichern geordnete Werte mit numerischen Schlüsseln ab Index 0. Erstellen, lesen, ändern und durchlaufen Sie Arrays mit foreach.

PHP Indizierte Arrays

Ein indiziertes Array ist die einfachste Art von PHP-Array: eine Liste von Werten, bei der jedem Element automatisch ein numerischer Schlüssel (seine Position) zugewiesen wird, beginnend bei 0. Verwenden Sie es immer dann, wenn Sie eine geordnete Sammlung haben — eine Liste von Produkten, die Zeilen einer Datei, die Zeilen eines Ergebnissatzes — und keinen aussagekräftigen Namen für jeden Eintrag benötigen.

PHP kennt insgesamt drei Array-Typen: indizierte Arrays (numerische Schlüssel, hier behandelt), assoziative Arrays (benannte String-Schlüssel) und mehrdimensionale Arrays (Arrays von Arrays). Diese Seite zeigt, wie man indizierte Arrays erstellt und wie man ihre Werte liest, ändert, hinzufügt, zählt und durchläuft.

Ein indiziertes Array erstellen

Es gibt zwei gleichwertige Möglichkeiten, ein indiziertes Array aufzubauen. Die kurze []-Syntax (PHP 5.4+) ist die moderne, bevorzugte Form; die Funktion array() funktioniert mit jeder PHP-Version.

// Short syntax (recommended)
$cars = ["Volvo", "BMW", "Toyota"];

// Long syntax — identical result
$cars = array("Volvo", "BMW", "Toyota");

In beiden Fällen weist PHP die Schlüssel automatisch zu: "Volvo" erhält Index 0, "BMW" erhält 1 und "Toyota" erhält 2. Ein leeres Array ist einfach $cars = [];, bereit, später mit Elementen befüllt zu werden.

Werte abrufen

Lesen Sie einen Wert, indem Sie seinen Index in eckige Klammern setzen. Denken Sie daran, dass das erste Element an Index 0 liegt, sodass der Index des letzten Elements immer um eins kleiner ist als die Anzahl der Elemente.

$cars = ["Volvo", "BMW", "Toyota"];

echo $cars[0]; // Volvo
echo $cars[2]; // Toyota

Der Zugriff auf einen nicht vorhandenen Schlüssel (z. B. $cars[9]) gibt null zurück und erzeugt einen Warning: Undefined array key-Hinweis — schützen Sie sich mit in_array() oder isset(), wenn Sie nicht sicher sind, ob ein Schlüssel vorhanden ist.

Werte ändern

Weisen Sie einem vorhandenen Index einen neuen Wert zu, um ihn an Ort und Stelle zu überschreiben:

$cars = ["Volvo", "BMW", "Toyota"];
$cars[0] = "Mercedes";

echo $cars[0]; // Mercedes

Das Array hat weiterhin drei Elemente; nur der Wert an Index 0 hat sich geändert.

Werte hinzufügen

Um am Ende des Arrays anzuhängen, weisen Sie der leeren Klammer-Syntax [] zu — PHP wählt automatisch den nächsten verfügbaren Index. Die Funktion array_push() tut dasselbe und kann mehrere Werte auf einmal hinzufügen:

$cars = ["Volvo", "BMW", "Toyota"];

$cars[] = "Audi";                 // index 3
array_push($cars, "Tesla", "Kia"); // indexes 4 and 5

print_r($cars);

Die Ausgabe lautet:

Array
(
    [0] => Volvo
    [1] => BMW
    [2] => Toyota
    [3] => Audi
    [4] => Tesla
    [5] => Kia
)

Elemente zählen

Verwenden Sie count(), um herauszufinden, wie viele Elemente ein Array enthält — nützlich zum Anzeigen von Gesamtzahlen oder als Obergrenze einer Schleife:

$cars = ["Volvo", "BMW", "Toyota"];
echo count($cars); // 3

Über ein indiziertes Array iterieren

Die sauberste Möglichkeit, jeden Wert zu besuchen, ist eine foreach-Schleife, die unabhängig von der Anzahl der Elemente funktioniert:

$cars = ["Volvo", "BMW", "Toyota"];

foreach ($cars as $car) {
    echo $car . PHP_EOL;
}

Ausgabe:

Volvo
BMW
Toyota

Wenn Sie auch den Index jedes Elements benötigen, erfassen Sie auch den Schlüssel:

$cars = ["Volvo", "BMW", "Toyota"];

foreach ($cars as $index => $car) {
    echo "$index: $car" . PHP_EOL;
}
// 0: Volvo
// 1: BMW
// 2: Toyota

Eine klassische for-Schleife ist eine Alternative, wenn Sie eine explizite numerische Kontrolle wünschen:

$cars = ["Volvo", "BMW", "Toyota"];

for ($i = 0; $i < count($cars); $i++) {
    echo $cars[$i] . PHP_EOL;
}

Häufige Fallstricke

  • Schlüssel sind nicht immer sequenziell. Das Entfernen eines Elements mit unset($cars[1]) hinterlässt eine "Lücke" — die verbleibenden Schlüssel bleiben 0 und 2. Rufen Sie array_values() auf, um ab 0 neu zu indizieren, wenn Sie eine saubere Liste benötigen.
  • Indiziert vs. assoziativ ist fließend. Das Hinzufügen eines String-Schlüssels ($cars["best"] = "Volvo") verwandelt das Array in ein gemischtes/assoziatives. Um ein Array rein indiziert zu halten, hängen Sie nur an oder weisen Sie Integer-Schlüssel zu.
  • Sortierung ändert die Reihenfolge und manchmal die Schlüssel. Funktionen wie sort() indizieren das Array ab 0 neu, was normalerweise das Gewünschte für eine indizierte Liste ist.

Fazit

Indizierte Arrays speichern eine geordnete Liste von Werten unter automatischen numerischen Schlüsseln, beginnend bei 0. Sie erstellen sie mit [], lesen und überschreiben Werte per Index, hängen mit $arr[] oder array_push() an, messen sie mit count() und iterieren mit foreach. Wenn Sie beschriftete statt positioneller Daten benötigen, greifen Sie stattdessen auf ein assoziatives Array zurück.

Übungen

Übung
Welche der folgenden Aussagen über indizierte Arrays in PHP sind wahr?
Welche der folgenden Aussagen über indizierte Arrays in PHP sind wahr?
Was this page helpful?