W3docs

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

php— editable, runs on the server

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]; // green

Siehe 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]; // 6

Siehe 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); // 3

Elemente 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: 36

Siehe 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üssel 7 gespeichert, 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 mit array_key_exists() oder isset() 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über array() 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 mit array_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.

Übungen

Übung
Was sind die grundlegenden Array-Typen in PHP?
Was sind die grundlegenden Array-Typen in PHP?
Was this page helpful?