Arrays sind ein wichtiges Konzept in PHP.
Ein Array ist eine geordnete Liste oder wenn es eine Tabelle.
Beispielsweise eine Liste (Tabelle) von Zahlen oder eine Liste von Texten (Strings).
Wir können mittels einem Array beispielsweise die Wochentage in einer Liste zusammenfassen, oder alle Benutzer unsere Seite.
Arrays werden gerne verwendet, um Ergebnisse von
Datenbankabfragen erstmal in einer Tabelle zwischenzuspeichern um danach mit den Daten weiterzuarbeiten.
Arrays definieren
Bisher konnte jede Variable nur einen Wert speichern.
In einem Array können nun aber beliebig viele Werte gespeichert werden, auch von unterschiedlichen Typen. So kann ein PHP Array z.B. eine Zeichenkette (String/Text), eine Ganzzahl und eine Zahl mit Kommastellen enthalten und auf jeden dieser Werte kann man separat zugreifen.
Einem
PHP Array wird ganz normal ein Variablenamen zugeordnet, hier
wochentage, allerdings erfolgt die Zuweisung der Daten nicht einfach durch das Gleichheitszeichen, sondern danach kommt noch der Befehl:
array();.
Beispiel: Wir speichern die Wochentage:
<?php
$wochentage = array("Sonntag","Montag","Dienstag",
"Mittwoch","Donnerstag","Freitag","Samstag");
echo $wochentage[1];
?>
Als Ergebnis bekommen wir Montag zurück.
Warum nicht Sonntag?
Wir bekommen nicht Sonntag zurück, denn wenn kein Schlüssel definiert wurde, dann legt php selber einen an und nummeriert die Elemente einfach durch, allerdings beginnes damit nicht mit 1 sondern mit 0.
Assoziative Arrays definieren
Bei großen Arrays wird es irgendwann umständlich zu wissen, welche Nummer/Index zu welchem Wert gehört, darum gibt es
assoziative Arrays.
Assoziatives Array bedeutet, dass nicht php die Elemente durchnummeriert und so einen Schlüssel anlegt, sondern dass wir selber einen Schlüssel zuordnen.
Das heißt, man kann für einen Wert einen Schlüssel (auch Key genannt) zuweisen, dies kann z.B. eine andere Zeichenkette sein.
Die Zuweisung erfolgt per
=>
Beispiel:
<?php
$wochentage = array(
"so" => "Sonntag",
"mo" => "Montag",
"di" => "Dienstag",
"mi" => "Mittwoch",
"do" => "Donnerstag",
"fr" => "Freitag",
"sa" => "Samstag");
echo $wochentage["mo"];
?>
Dies ist wieder ein Array mit unseren Namen der Wochentage.
Dabei wurde dem Schlüssel
so der Wert
Sonntag zugewiesen, dem Schlüssel
mo dem Wert
Montag und so weiter.
Der Vorteil ist, dass man jetzt bequemer auf das Array zugreifen kann:
Ausgabe: Montag
Anstatt jetzt die Nummer/Index des Elementes anzugeben, gibt man hier den Schlüssel für das Element an, also
so für
Sonntag,
mo für
Montag und
sa für
Samstag.
Selbstverständlich kann man nachträglich auch Werte in einem Array verändern:
<?php
$wochentage = array(
"so" => "Sonntag",
"mo" => "Montag",
"di" => "Dienstag",
"mi" => "Mittwoch",
"do" => "Donnerstag",
"fr" => "Freitag",
"sa" => "Samstag");
$wochentage["mo"] = "Monday";
echo $wochentage["mo"];
?>
Ausgabe: Monday
Weitere Werte einem Array hinzufügen
Ihr könnt einem Array bequem weitere Werte hinzufügen. Dies geht mittels [] hinter dem Array-Namen:
<?php
$mitarbeiter = array("'Hugo","Richard");
$mitarbeiter[] = "Amalia";
echo $mitarbeiter[2];
?>
Ausgabe: Amalia
Mit $mitarbeiter[] wird automatisch ein neues Element in unserem Array erstellt, und diesem wird der Wert
Amalia zugewiesen.
Dies lässt sich ebenfalls auch auf leere Arrays anwenden:
<?php
$mitarbeiter = array();
$mitarbeiter[] = "Hugo";
$mitarbeiter[] = "Richard";
$mitarbeiter[] = "Amalia";
echo $mitarbeiter[0];
?>
Hier wird zuerst ein leeres Array erstellt und danach werden die Mitarbeiter hinzugefügt.
Wie viele Elemente ihr einem Array hinzufügen möchtet, ist euch überlassen.
Mit assoziativen PHP Arrays funktioniert dies ähnlich, aber wir müssen den neuen Schlüssel mit angeben:
$mitarbeiter = array(
"Hugo" => "Hugo Seppele",
"Richard" => "Richard Fuentes");
$mitarbeiter["Amalia"] = "Amalia Hopfenbuehl";
echo $mitarbeiter["Amalia"];
?>
Ausgabe: Amalia Hopfenbuehl
Sollte der Schlüssel
Amalia bereits vergeben sein, dann wird kein neuer Eintrag erstellt, sondern der vorhandene Eintrag wird überschrieben.