4.3.8 Arrays im Array

Bisher haben wir nur einfache Arrays kennengelernt. Sie können aber innerhalb eines Arrays weitere Arrays einbinden. Damit dies übersichtlich bleibt, schreiben wir unser indiziertes Array zunächst einmal um und geben es aus.

1
2
3
4
5
6
7
8
9
// Schreibweise für sehr einfache Arrays
$name = ["Maria", "Ute", "Jürgen"];

// Bessere Schreibweise, sobald die Arrays komplexer werden
$name = [
  "Maria",
  "Ute",
  "Jürgen"
];

Nun sollen nicht nur die Namen, sondern zugehörige Daten abgespeichert werden.

1
2
3
4
5
6
7
$data = [
  "Maria"  => ["7201234", "Medientechnik", "6. Semester"],
  "Ute"    => ["7208888", "Informatik", "2. Semester"],
  "Jürgen" => ["7211111", "Medientechnik", "2. Semester"],
];

echo "Die Matr.-Nr. von Ute ist: " . $data["Ute"][0];

Ausgabe:
Die Matr.-Nr. von Ute ist: 7208888

Im gezeigten Beispiel wurde aus dem ehemaligen indiziertem Array nun ein assoziatives Array, wobei (in Zeilen 2-4) die Namen "Maria", "Ute", "Jürgen" nun als Keys verwendet werden. Jedem Key wurde nun ein indiziertes Array mit den zugehörigen Daten angefügt.

Durch $data["Ute"][0] wird in Zeile 8 zunächst der Datensatz zum Key "Ute" gesucht. Dieser zugehörige Datensatz ist ein indiziertes Array. Aus dem indizierten Array wird dann die Stelle [0] ausgelesen, die der Matrikelnummer 7208888 von Ute entspricht.

Keys auslesen mit array_keys()

Vielleicht ist es Ihnen schon aufgefallen, dass ich oben bei der Ausgabe etwas "geschummelt" habe. Das Wort "Ute" habe ich direkt in den String geschrieben. Da "Ute" nun der Key zum zugehörigen Datensatz ist, kann man diesen Key nicht so einfach auslesen, sondern es muss die PHP-Funktion array_keys() verwendet werden. array_keys() liefert ein indiziertes Array mit allen Keys zurück, also ["Maria", "Ute", "Jürgen"].

Keys auslesen mit array_keys() erlaubt uns, auf die Schlüssel eines Arrays zuzugreifen. Das ist besonders nützlich, wenn wir über die Schlüssel eines assoziativen Arrays iterieren möchten, ohne die genauen Schlüsselnamen zu kennen. Zum Beispiel:

$data = [
  "Maria"  => ["7201234", "Medientechnik", "6. Semester"],
  "Ute"    => ["7208888", "Informatik", "2. Semester"],
  "Jürgen" => ["7211111", "Medientechnik", "2. Semester"],
];

$name = array_keys($data);
echo "Die Matr.-Nr. von " . $name[1] . " ist: " . $data["Ute"][0];

// Auch die folgende "Kurzform" ist möglich
echo "Die Matr.-Nr. von " . array_keys($data)[1] . " ist: " . $data["Ute"][0];

In diesem Code-Abschnitt wird array_keys() verwendet, um ein neues Array zu erstellen, das alle Schlüssel von $data enthält. Dann greifen wir über $name[1], was "Ute" entspricht, auf den zweiten Schlüssel des $data-Arrays zu. Schlussendlich wird die Matrikelnummer von Ute ausgegeben, indem auf das untergeordnete Array zugegriffen wird.

Beachten Sie, dass der direkte Zugriff auf die Schlüssel und Werte eines assoziativen Arrays sehr flexibel gestaltet werden kann, und array_keys() bietet eine einfache Methode, um die Schlüssel eines Arrays zu erhalten.

Hinweis

Die Funktion array_keys() ist besonders hilfreich, wenn die genauen Schlüssel eines Arrays nicht bekannt sind oder wenn über alle Schlüssel iteriert werden soll. Es bietet eine einfache Möglichkeit, die Struktur und die Daten eines assoziativen Arrays zu erforschen.