PHP EINFACH LERNEN – #02 Arrays

PHP EINFACH LERNEN – #02 Arrays

Im zweiten Teil der „PHP EINFACH LERNEN“-Reihe soll es um Arrays gehen. Arrays kann man sich zunächst als Liste vorstellen.

Wie sieht ein Array aus?

Ein Array besteht immer aus einem Schlüssel und einem Wert. Diese „Schlüssel => Wert„-Paare können nun beliebig oft hintereinander mit einem Koma separiert geschrieben werden. Dies kann z.B. so aussehen:

// Variable in welcher das Array gespeichert werden soll ist $array
$array = [ // DIe von einem Komma separierten "Schlüssel => Wert"-Paare sind von zwei eckigen Klammern umgeben "[]".
    "Schlüssel1" => "Wert1",
    "Schlüssel2" => "Wert2",
    "Schlüssel3" => "Wert3",
    "Schlüssel4" => "Wert4",
];

Der Array „Schlüssel“:

Der Schlüssel des Arrays kann entweder ein Integer (Zahl) oder ein String (Zeichenkette) sein. Werte vom Typ Float (Dezimalzahl) werden automatisch zu Integer (Zahl) umgewandelt. Bools (Richtig / Falsch) werden in 0 (Falsch) / 1 (Richtig) umgewandelt und Null-Werte werden in „“ umgewandelt.

Alle anderen Typen können nicht als Array „Schlüssel“ verwendet werden.

Mit dem Schlüssel kann ein Wert identifiziert werden und muss daher eindeutig sein. Heißt: Wird ein Schlüssel mehrfach genutzt wird nur der zuletzt angegebene verwendet.

Der Array „Wert“:

Der Wert eines Arrays kann so gut wie alles sein. In diesem Wert kann sogar ein Weiteres Array enthalten sein. Daher kannst du dir den „Schlüssel“ eines Arrays vorstellen wie eine Variable und den „Wert“ eines Arrays wie den Wert welchen du in der Variable speichern möchtest.

Arbeiten mit dem Array:

Werte in einem Array speichern. Dies kannst du auf unterschiedliche Weiße machen. Hier sind ein paar dieser Wege:

$array = [
    0 => "Mein Wert",
    1 => "Mein zweiter Wert",
    2 => ["Erster Wert des 3. Array wertes","Zweiter Wert des 3. Array wertes"],
    "Vierter Wert ohne Schlüssel",
];

In diesem Beispiel habe ich ein paar dinge eingebracht. Zunächst: Warum habe ich im Array mit dem Schlüssel 0 angefangen?

Wenn in einem Array keine Schlüssel angegeben werden, wie bei dem letzten wert des Arrays, legt PHP diese Schlüssel selber fest, und diese beginnen bei 0 und steigen dann immer weiter an.

Der Wert mit dem Schlüssel 2 enthält ein weiteres Array, welches theoretisch noch viele weitere Arrays enthalten könnte.

Wie passe ich den zweiten Wert mit dem Schlüssel 1 an ohne alle anderen Werte erneut eintragen zu müssen?

Auf einen Wert eines Arrays kannst du folgendermaßen zugreifen und diesen Wert anpassen:

// $variable[$schluessel] = $neuerWert;
$array[1] = "Neuer Wert für Schlüssel 1";

Den Wert diesen Schlüssels kann man nun auch nach einem ähnlichen verfahren abrufen und z.B. wie in diesem folgenden Beispiel mit echo ausgeben:

// echo $variable[$schluessel];
echo $array[1]; // Hier wird nun der Wert mit dem Schlüssel 1 ausgegeben

Sollte dir noch ein Wert in dem Array fehlen, kannst du diesen mit einem neuen Schlüssel an das Array anfügen indem du folgendes machst:

// Der neue Schlüssel des Arrays soll "neuer Schlüssel" sein
$array["neuer Schlüssel"] = "Wert des neuen Schlüssels";
// Ist dir kein Schlüssel bekannt / du willst einfach einen neuen Eintrag zum Array hinzufügen und dir ist egal wie der Schlüssel heißen soll? Dann musst du folgendes machen:
$array[] = "neuer Wert";
// Hier wird kein Schlüssel angegeben. Der Schlüssel wird dann von PHP automatisch festgelegt.

Zugriff auf ein mehrdimensionales Array:

Nehmen wir an du hast ein Array, welches wie folgt aussieht:

$array = [
    "username" => [
        "avatar" => [
            "url" => "Link zum Avatar",
            "uploaded" => "Datum wann es hochgeladen wurde",
        ],
        "gruppe" => "Administrator",
        "berechtigungen" => [
            "berechtigung1",
            "berechtigung2",
            "berechtigung3",
    ]
];

Du möchtest nun gerne den Link zum Avatar-Bild haben. Dazu musst du folgendes machen:

$username = "username";
$userAvatar = $array[$username]["avatar"]["url"];

Mehr Informationen zu Arrays, kannst du in der Dokumentation von PHP finden.

One thought on “PHP EINFACH LERNEN – #02 Arrays

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.