Arrays in PHP und nützliche Array-Funktionen

Ein PHP Tutorial über Arrays allgemein, eindimensionale und mehrdimensionale Arrays, und die wichtigsten Array-Funktionen.Tags: | | | | |
Noch nicht sicher genug im Webdesign? Lass dir in unseren Programmier-Kursen in Kirchdorf oder unserer Wichtel-Webdesign-Agentur in Pettenbach weiterhelfen!

Worum geht´s?

In diesem PHP Tutorial steigen in wir in die Welt der Arrays in PHP ein. Wir werden uns eindimensionale und mehrdimensionale Arrays ansehen, und einige der wichtigsten Array-Funktionen wie z.B. count() oder in_array().

1. Was sind Arrays in PHP?

Arrays in PHP

Eine einfache Variable entspricht mehr oder weniger einer Kiste, in der ein einziger Wert gespeichert ist. Der Name der Variable ist dabei der Name, der auf dieser Kiste steht.

Ein Array kannst du dir dabei vorstellen wie ein Regal mit mehreren Kisten darauf. Auf jeder der Kisten auf diesem Regal steht nun nicht mehr der Name der Variable, sondern eine Nummer, also z.B. 0, 1, 2, 3.

Der Name des Arrays bezeichnet dabei also das Regal, nicht mehr die einzelne Kiste.

Als PHP-Code sieht das Ganze dann z.B. so aus:

$regal = array(3, 5, 2, 1, 3);

Dies legt eine Array-Variable an, die den Namen $regal trägt.

In dieser Array-Variable $regal sind insgesamt 5 Werte gespeichert.

Wollen wir nun z.B. den 1. und den 3. Wert aus unserem Regal ausgeben, so funktioniert das so:

echo $regal[0];
echo $regal[2];

Der sogenannte Index eines Arrays ist die Zahl zwischen den []-Klammern. Er beginnt bei Arrays immer bei 0 zu zählen. Das 1. Element eines Arrays hat also den Index 0.

1.1 Arrays in PHP erstellen

Die eine Methode, einen Array in PHP zu erstellen, haben wir ja weiter oben schon kennen gelernt:

$regal = array(3, 5, 2, 1, 3);

Wenn du aber einfach nur einen leeren Array anlegen willst, um ihn später zu befüllen, gehen diese beiden Varianten:

$regal = array();
$regal = [];

Die letztere Variante ist kürzer zu schreiben und damit sehr verbreitet.

Du kannst beide auch verwenden, um einen schon befüllten Array wieder zu leeren (es wird dabei einfach ein neuer erstellt).

1.2 Werte an ein Array anfügen

Wollen wir nun einen Wert zu unserem Array in PHP hinzufügen, so geht das sehr einfach:

$regal[] = 6;

Dies fügt die Zahl 6 hinten an den bestehenden Array an.

1.3 Werte in einem Array verändern

Wollen wir z.B. die 3. Zahl in einem Array ändern, so können wir das auf diese Weise tun:

$regal[2] = 7;

Du kannst also mit der „Kiste“ in einem Array genau gleich arbeiten wie mit einer normalen Variable, was Zuweisungen betrifft.

1.4 Kann man bei Arrays in PHP auch Datentypen „mischen“?

In den meisten Programmiersprachen ist dies nicht möglich. Ein Array für ganzzahlige Zahlen darf nur ganzzahlige Zahlen enthalten, und z.B. keinen Text.

PHP ( wie auch JavaScript) stellt hier eine große Ausnahme dar. Daher JA: Ein Array kann wild durchgemischt verschiedene Datentypen enthalten. Es ist also auch folgendes möglich:

$regal = array(3, "Haus", 2, 1, 3);

Das bedeutet aber umgekehrt auch, dass wir bei Arrays in PHP besonders darauf achten müssen, welche Datentypen sich in unseren Arrays befinden.

Wenn eine PHP-Funktion beispielsweise zwei Zahlen addieren soll und eine davon hat den Wert „Haus“, dann kommen womöglich ziemlich seltsame Ergebnisse heraus.

2. Assoziative Arrays in PHP

Anstatt die einzelnen „Kisten“ in unserem Array zu nummerieren, kannst du ihnen auch Namen geben.

Der Fachbegriff dafür heißt assoziative Arrays, und das Prinzip funktioniert so:

$assoc = array(
    "vorname" => "Niklas",
    "nachname" => "Baumgaertler"
);
echo $assoc["vorname"];

Der Rest funktioniert sehr ähnlich wie bei den normalen, durchnummerierten Arrays.

3. Mehrdimensionale Arrays in PHP verwenden

Mehrdimensionale Arrays in PHP

Wenn ein einfaches Array etwas Ähnliches ist wie ein Regal voller Kisten, dann ist ein 2-dimensionales Array so etwas wie ein Kasten mit mehreren Regalen.

Der Variablen-Name bezeichnet also dabei nicht eine einzelne Kiste, auch nicht ein einzelndes Regal, sondern den Kasten, der alle Regale und Kisten beinhaltet.

Hier ein Beispiel für ein 2-dimensionales Array:

$kasten = array(
    array(2, 4, 6),
    array(3, 5, 7),
    array(4, 6, 8),
    array(5, 7, 9)
);

Die Variable $kasten besteht gewissermaßen aus 4 „Regalen“, die jeweils wieder aus 3 „Kisten“ besteht.

Die einzelnen „Regale“ dürfen – theoretisch – auch wieder unterschiedlich viele „Kisten“ beinhalten, z.B. so:

$kasten = array(
    array(2, 4, 6),
    array(3, 5),
    array(4, 6, 8, 10),
    array(5, 7, 9)
);

Allerdings sorgt das auch wieder für mögliche Fehlerquellen.

Wenn du hierbei z.B. versuchst auf die 3. Kiste des 2. Regals zuzugreifen, dann bekommst du einen Fehler, weil diese Kiste nicht existiert:

echo $kasten[1][2];

Du kannst auch 3-dimensionale Arrays und noch mehr Dimensionen einführen.

Allerdings musst du dabei bedenken, dass mit jeder zusätzlichen Dimension in Arrays die Komplexität steigt – und damit auch die Chance, Fehler einzubauen.

In der Praxis wirst du selten mehr als einige wenige Dimensionen bei deinen Arrays in PHP verwenden.

4. Einige wichtige Array-Funktionen in PHP

Hier noch einige der wichtigsten Array-Funktionen in PHP:

4.1 Array-Elemente im Array zählen mit count()

Mit Hilfe der Funktion count() kannst du herausfinden, wie viele „Kisten“ in deinem eindimensionalen Array zu finden sind:

echo count($assoc);

Dies ist sehr nützlich, wenn du z.B. in einer Schleife durch das ganze Array durchlaufen willst.

Bei mehrdimensionalen Arrays liefert dir count() nicht die Gesamt-Anzahl der „Kisten“, sondern nur die jeweils nächste Ebene:

$kasten = array(
   array(2, 4, 6),
   array(3, 5),
   array(4, 6, 8, 10),
   array(5, 7, 9)
);
echo count($kasten);

Hier würde z.B. die Zahl 4 als Ergebnis angezeigt werden.

4.2 Herausfinden, ob die Variable ein Array ist mit is_array()

if (is_array($kasten)) {
    echo "JA!";
}

4.3 Herausfinden, ob ein Wert sich innerhalb eines Arrays befindet mit in_array()

if (in_array(2, $kasten)) {
    echo "JA!";
}

4.4 Herausfinden, wo in einem Array sich ein Wert befindet mit array_search()

$pos = array_search(2, $regal);

4.5 Den größten oder kleinsten Wert in einem Array finden mit min() und max()

$minVal = min($regal);
$maxVal = max($regal);

Das funktioniert natürlich nur dort, wo <>-Vergleiche sinnvoll sind.

4.6 Arrays sortieren mit sort()

sort($regal);

Achtung: Die Array-Variable $regal wird direkt verändert.

4.7 Arrays in Strings umwandeln und zurück mit explode() und implode()

$test = "1,2,3,4,5";
$parts = explode(",", $test);
$test2 = implode(",", $parts);
echo $test2;

Die Variable $parts ist nach Zeile 2 ein Array mit dem Inhalt [1][2][3][4][5], also nur die Zahlen. Die Funktion explode() entfernt also die Trennzeichen.

Die Funktion implode() fügt hingegen wieder ein Trennzeichen hinzu und setzt einen String aus dem Array zusammen.

4.8 Werte irgendwo mitten im Array einfügen, löschen oder ersetzen mit array_splice()

$regal = array(3, 2, 2, 1, 3);
array_splice($regal, 2, 1, 15);
echo $regal[2];

Die obige Funktion ersetzt im Array $regal an der Position 2 ($regal[2]) den bestehenden Wert mit 15.

Wollen wir einfach nur einen Wert löschen, geht das so:

$regal = array(3, 2, 2, 1, 3);
array_splice($regal, 2, 1);
echo $regal[2]."<br>";

Wollen wir mehrere Werte löschen, geht das so:

$regal = array(3, 2, 2, 1, 3);
array_splice($regal, 0, 3);
echo $regal[0]."<br>";

Mehrere Elemente löschen, einen Sub-Array einfügen:

$regal = array(3, 2, 2, 1, 3);
array_splice($regal, 0, 3, array(5, 4));
echo $regal[0]."<br>";

Natürlich gibt es in Wahrheit noch viel mehr Funktionen, aber das sind fürs erste mal die wichtigsten.

Viel Freude noch mit Arrays in PHP! 🙂

Diskussion zum Tutorial

Du bist aus Oberösterreich? Dann nütze doch auch unsere flexiblen Programmier-Kurse in Kirchdorf - oder gib deine Website gerne in die guten Hände unserer erfahrenen Wichtel-Webdesign-Agentur.