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]; // ToyotaDer 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]; // MercedesDas 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
ToyotaWenn 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: ToyotaEine 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 bleiben0und2. Rufen Siearray_values()auf, um ab0neu 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 ab0neu, 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.