Zugriff auf Werte über Schlüssel
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy. Lektion 42 von 71.
Nachdem du nun verstanden hast, was assoziative Arrays sind, lernen wir, wie man Werte daraus abruft. Genau wie indizierte Arrays numerische Positionen verwenden, verwenden assoziative Arrays Schlüssel in eckigen Klammern.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>Die Syntax lautet $array["key"]: Setze den Schlüssel als Zeichenfolge in die eckigen Klammern, und PHP gibt den zugehörigen Wert zurück. Das ist viel lesbarer, als sich merken zu müssen, dass der Name am Index 0 steht.
Du kannst den abgerufenen Wert auch in einer Variable speichern, um ihn später zu verwenden:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>Der Schlüssel muss exakt übereinstimmen, einschließlich der Groß- und Kleinschreibung. Wenn du "Name" statt "name" verwendest, bezieht sich das auf einen anderen Schlüssel; PHP gibt eine Warnung „Undefined array key“ aus und der Ausdruck ergibt null (es kommt nicht zu einem Absturz).
Manchmal kommen Daten als JSON-Zeichenfolge statt als PHP-Array-Literal an. JSON (JavaScript Object Notation) ist ein gängiges Textformat zur Darstellung strukturierter Daten. Zum Beispiel:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';Die integrierte PHP-Funktion json_decode() wandelt eine JSON-Zeichenfolge in einen PHP-Wert um. Um ein assoziatives Array zu erhalten, übergib true als zweites Argument:
<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';
$book = json_decode($json, true);
echo $book["title"]; // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"]; // 1965
?>Nach dem Aufruf von json_decode($json, true) ist das Ergebnis ein gewöhnliches assoziatives Array, und du kannst auf seine Werte genauso zugreifen wie auf jedes andere assoziative Array: mit $array["key"].
Aufgabe
EinfachLies eine Eingabezeile mit einem JSON-Objekt, das die Informationen zu einem Buch enthält (z. B. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Lies anschließend zwei weitere Eingaben:
- Eine Zeichenfolge
key1, die den ersten Schlüssel angibt, auf den zugegriffen werden soll - Eine Zeichenfolge
key2, die den zweiten Schlüssel angibt, auf den zugegriffen werden soll
Um die JSON-Zeichenfolge in ein assoziatives Array umzuwandeln, verwende die integrierte Funktion json_decode() mit true als zweitem Argument:
$array = json_decode($jsonString, true);
Das zweite Argument true weist PHP an, ein assoziatives Array statt eines Objekts zurückzugeben. Nach dem Dekodieren kannst du wie bei jedem assoziativen Array über Schlüssel auf Werte zugreifen, z. B. mit $array["title"].
Erstelle aus der JSON-Eingabe ein assoziatives Array und führe dann Folgendes aus:
- Greife auf den Wert zu, der
key1zugeordnet ist, und gib ihn aus - Speichere den Wert, der
key2zugeordnet ist, in einer Variablen namens$info - Gib den in
$infogespeicherten Wert aus
Gib jedes Ergebnis in einer eigenen Zeile aus.
Beispiel:
Wenn die Eingaben {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title und author lauten, sollte die Ausgabe wie folgt aussehen:
The Great Gatsby
F. Scott FitzgeraldWenn die Eingaben {"name": "Laptop", "brand": "TechCo", "price": 999}, brand und price lauten, sollte die Ausgabe wie folgt aussehen:
TechCo
999Probier es selbst
<?php
// Lies die JSON-Eingabe ein
$jsonInput = trim(fgets(STDIN));
// Lies die beiden Schlüssel ein
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: Schreibe deinen Code unten
// 1. Erstelle mit json_decode ein assoziatives Array aus der JSON-Eingabe
// 2. Greife auf den mit $key1 verknüpften Wert zu und gib ihn aus
// 3. Speichere den mit $key2 verknüpften Wert in einer Variablen namens $info
// 4. Gib den in $info gespeicherten Wert aus
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik7Arrays Teil 2 – Assoziative Arrays
Einführung in assoziative ArraysZugriff auf Werte über SchlüsselÄndern von Werten über SchlüsselNeue Schlüssel-Wert-Paare hinzufügenPrüfen, ob ein Schlüssel vorhanden istZusammenfassung – Schlüssel-Wert-Datenspeicher2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler