Arbeiten mit Arrays in PHP

In PHP kann man zum Speichern und Auslesen eines Werts eine Variable (oder Konstante) deklarieren und einen Wert zuweisen. Häufig wird jedoch die Möglichkeit benötigt, mehrere Werte in einer Variable zu speichern. Hierfür werden Arrays verwendet. Das sind im Grunde Variablen, die zum Speichern von Werten dienen. Der Unterschied zu Variablen besteht darin, dass man in einem Array mehrere Werte speichern kann. Die Datentypen der Werte können dabei unterschiedlich sein.

Arrays sind in PHP häufig automatisch vorhanden, z.B. bei einer Datenbankabfrage oder beim Übertragen von Daten über ein HTML-Formular. Wenn ein Formular abgeschickt wird, dann sind die einzelnen Werte, die vom Benutzer in den Formularfeldern eingegeben wurden, abhängig von der Übertragungsmethode in den Arrays $_POST oder $_GET.

PHP-Arrays

Arrays mit Index deklarieren und Werte zuweisen

Wenn man ein Array deklarieren und Werte zuweisen möchte, dann kann man hierfür die Funktion array() verwenden. Innerhalb der runden Klammern werden mit einem Komma getrennt die einzelnen Werte eingegeben.

$tag = array('Mo', 'Di', 'Mi', 'Do', 'Fr');

Für eine bessere Übersicht können die Werte auch wie folgt untereinander geschrieben werden.

$tag = array
(
'Mo', 
'Di', 
'Mi', 
'Do', 
'Fr'
);

Bei dieser Variante werden die einzelnen Werte mit einem Index durchnummeriert. Der erste Wert wird mit dem Index 0 begonnen und die nächsten Werte werden jeweils um hochgezählt. Der Index wird dabei in eckigen Klammern hinter dem Arraynamen angegeben. Möchte man beispielsweise den Wert Do (Index 3) mit echo ausgeben, kann man den folgenden Code verwenden.

echo $tag[3];

Die folgende Schreibweise mit einem automatisch durchnummerierten Index ist ebenfalls möglich. Bei dieser Variante ist die Definition des Arrays zu Beginn zwar optional, gehört jedoch zum guten Programmierstil.

// Optionale Array Definition
$tag = array();

$tag[] = 'Mo';
$tag[] = 'Di';
$tag[] = 'Mi';
$tag[] = 'Do';
$tag[] = 'Fr';

Ein bestehendes Array kann dadurch auch mit neuen Werten erweitert werden.

$tag[] = 'Sa';
$tag[] = 'So';

Man kann den Index auch selbst vorgeben. Die Reihenfolge spielt dabei keine Rolle.

$tag[4] = 'Fr';
$tag[0] = 'Mo';
$tag[3] = 'Do';
$tag[1] = 'Di';
$tag[2] = 'Mi';

Beim Erweitern eines bestehenden Arrays wird die Nummerierung nach dem höchsten Index fortgeführt.

$arr[1] = 'a';

// Fortsetzung mit Index 2 und 3
$arr[] = 'b';
$arr[] = 'c';

// Ausgabe würde abc ergeben
echo $arr[1];
echo $arr[2];
echo $arr[3];

Wenn man ein Array erweitert und den Index selbst vorgibt, kann das dazu führen, dass ein anderer Wert überschrieben wird.

$arr[] = 'a';
$arr[] = 'b';

// Überschreibt Index 1
$arr[1] = 'c';

// Ausgabe würde ac ergeben
echo $arr[0];
echo $arr[1];

Die auf dieser Seite gezeigten Arrays zählen zu den eindimensionalen Arrays mit Index. Daneben gibt es auch assoziative Arrays. Hierbei werden die Werte nicht mit einem Index durchnummeriert, sondern mit einem Schlüsselwort versehen. Arrays können auch verschachtelt werden, sodass ein Arrays aus weiteren Arrays besteht. Diese werden mehrdimensionale Arrays genannt und man kann damit verzweigte Datenstrukturen mit Index oder Schlüsselwort organisieren.