array()
Die Funktion array() in PHP erstellt ein Array. Erfahre, wie indexierte, assoziative und mehrdimensionale Arrays funktionieren.
Einführung
Das Sprachkonstrukt array() erstellt ein PHP array — eine geordnete Map, die Schlüssel mit Werten verknüpft. Obwohl der Name „array" verwendet wird, ist ein PHP-array weit flexibler als ein array fester Größe in Sprachen wie C oder Java: Ein einzelnes array kann gemischte Werttypen enthalten, zur Laufzeit wachsen oder schrumpfen und entweder ganze Zahlen oder strings als Schlüssel verwenden.
Diese Seite erklärt, wie array() funktioniert, welche drei Arten von Arrays du damit erstellst, die moderne Kurzschreibweise [] sowie die gängigsten Operationen (zählen, hinzufügen, iterieren), auf die du am häufigsten zugreifst. Alle Beispiele können ausgeführt werden.
Grundlegende Syntax
array(value1, value2, value3, ...)
// or, since PHP 5.4, the short syntax:
[value1, value2, value3, ...]Du kannst Schlüssel auch explizit mit dem key => value-Pfeil zuweisen:
array(key1 => value1, key2 => value2, ...)Beide Formen geben einen array-Wert zurück. Die zwei Syntaxvarianten sind austauschbar; die Kurzform [] ist in modernem Code bevorzugt.
Ein Array erstellen
Wenn du keine Schlüssel angibst, weist PHP sequentielle ganzzahlige Schlüssel ab 0 zu. So ist $fruits[0] gleich "apple", $fruits[1] gleich "banana" und $fruits[2] gleich "orange". Dies ist ein indexed array.
Array
(
[0] => apple
[1] => banana
[2] => orange
)Die drei Arten von Arrays
PHP verwendet eine einzige Datenstruktur, array, für drei konzeptionelle Formen:
Indexed Arrays
Schlüssel sind ganze Zahlen, die automatisch zugewiesen werden. Diese eignen sich für geordnete Listen, bei denen nur die Position zählt.
<?php
$colors = ["red", "green", "blue"];
echo $colors[1]; // greenSiehe indexed arrays für mehr Details.
Assoziative Arrays
Du wählst string-Schlüssel, um jeden Wert zu beschriften – ideal für Datensätze und Nachschlagetabellen.
<?php
$user = [
"name" => "Ada",
"email" => "[email protected]",
"age" => 36,
];
echo $user["email"]; // [email protected]Siehe associative arrays für mehr Details.
Mehrdimensionale Arrays
Ein Wert kann selbst ein array sein, was die Modellierung von Tabellen und verschachtelten Daten ermöglicht.
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
];
echo $matrix[1][2]; // 6Siehe multidimensional arrays für mehr Details.
Elemente zählen
Die Funktion count() gibt an, wie viele Elemente der obersten Ebene ein array enthält. Sie ergänzt array() auf natürliche Weise:
<?php
$fruits = array("apple", "banana", "orange");
echo count($fruits); // 3Elemente hinzufügen
Um einen Wert anzuhängen, verwende die []-Syntax — sie ist kürzer als der Aufruf von array_push() und klarer bei einem einzelnen Element:
<?php
$fruits = ["apple", "banana"];
$fruits[] = "cherry"; // appended with the next integer key (2)
$fruits["fav"] = "mango"; // added with an explicit string key
print_r($fruits);Array
(
[0] => apple
[1] => banana
[2] => cherry
[fav] => mango
)Diese Mischung aus ganzzahligen und string-Schlüsseln in einem array ist vollkommen gültig — das macht PHP-Arrays zu „geordneten Maps".
Über ein Array iterieren
foreach ist die idiomatische Methode, um jeden Schlüssel/Wert-Paar zu durchlaufen, und funktioniert für alle drei Array-Arten:
<?php
$user = ["name" => "Ada", "age" => 36];
foreach ($user as $key => $value) {
echo "$key: $value\n";
}name: Ada
age: 36Siehe the foreach loop für die vollständige Referenz.
Häufige Fallstricke
- Doppelte Schlüssel überschreiben sich.
[1 => "a", 1 => "b"]behält nur"b"— der zuletzt einem Schlüssel zugewiesene Wert gewinnt. - String-Schlüssel, die wie ganze Zahlen aussehen, werden zu ganzen Zahlen.
["7" => "x"]wird unter dem ganzzahligen Schlüssel7gespeichert, sodass$a[7]und$a["7"]dasselbe Element erreichen. - Der Zugriff auf einen fehlenden Schlüssel gibt eine Warnung aus und liefert
null. Sichere dich vorher mitarray_key_exists()oderisset()ab. - Zählen erfasst nur die oberste Ebene.
count()auf einem mehrdimensionalen array gibt die Anzahl der äußeren Elemente zurück, nicht die Gesamtanzahl der Blattknoten.
Best Practices
- Bevorzuge die Kurzschreibweise
[]gegenüberarray()in neuem Code — das ist die moderne Konvention. - Verwende aussagekräftige string-Schlüssel für assoziative Daten, damit der Code das abgebildete Domänenmodell widerspiegelt.
- Hänge mit
$arr[] = ...statt mitarray_push()an, wenn du einen einzelnen Wert hinzufügst. - Sortiere mit der richtigen Funktion für deinen Schlüsseltyp — siehe sorting arrays für
sort(),asort(),ksort()und ähnliche.
Fazit
Das Konstrukt array() (und seine Kurzform []) ist die Grundlage der Datenverarbeitung in PHP. Da ein einziger array-Typ gleichzeitig als indexierte Liste, assoziative Map und verschachtelbarer Baum fungiert, erschließt das Beherrschen von Erstellung, Zählen, Anhängen und Iterieren den größten Teil des Datenverarbeitungs-Toolkits der Sprache.