Accessing Values by Key
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 42 von 71.
Nachdem Sie nun verstanden haben, was assoziative Arrays sind, lassen Sie uns lernen, wie man Werte aus ihnen abruft. Genau wie indizierte Arrays numerische Positionen verwenden, nutzen assoziative Arrays Schlüssel innerhalb eckiger Klammern.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>Die Syntax lautet $array["key"]—setzen Sie den Schlüssel als String in die Klammern, und PHP gibt den zugehörigen Wert zurück. Dies ist viel besser lesbar, als sich merken zu müssen, dass der Name an Index 0 steht.
Sie können den abgerufenen Wert auch in einer Variablen zur späteren Verwendung speichern:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>Der Schlüssel muss exakt übereinstimmen – einschließlich der Groß- und Kleinschreibung. Die Verwendung von "Name" anstelle von "name" würde einen Fehler verursachen, da PHP sie als unterschiedliche Schlüssel behandelt.
Manchmal kommen Daten als ein JSON-String anstatt als ein 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() konvertiert einen JSON-String in einen PHP-Wert. Um ein assoziatives Array zu erhalten, übergeben Sie 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 normales assoziatives Array, und Sie können auf dessen Werte genau so zugreifen wie auf jedes andere assoziative Array – mit $array["key"].
Aufgabe
EinfachLies eine Eingabezeile ein, die ein JSON-Objekt enthält, das Informationen über ein Buch darstellt (z. B. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Lies dann zwei weitere Eingaben ein:
- Einen String
key1, der den ersten zuzugreifenden Schlüssel darstellt - Einen String
key2, der den zweiten zuzugreifenden Schlüssel darstellt
Um den JSON-String 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 anstelle eines Objekts zurückzugeben. Nach der Dekodierung kannst du auf Werte über den Schlüssel zugreifen, genau wie bei jedem assoziativen Array, z. B. $array["title"].
Erstelle ein assoziatives Array aus der JSON-Eingabe und führe dann Folgendes aus:
- Greife auf den mit
key1verknüpften Wert zu und gib ihn aus - Speichere den mit
key2verknüpften Wert in einer Variablen namens$info - Gib den in
$infogespeicherten Wert aus
Gib jedes Ergebnis in einer separaten Zeile aus.
Beispiel:
Wenn die Eingaben {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title und author sind, sollte die Ausgabe wie folgt lauten:
The Great Gatsby
F. Scott FitzgeraldWenn die Eingaben {"name": "Laptop", "brand": "TechCo", "price": 999}, brand und price sind, sollte die Ausgabe wie folgt lauten:
TechCo
999Probier es selbst
<?php
// JSON-Eingabe lesen
$jsonInput = trim(fgets(STDIN));
// Die zwei Schlüssel lesen
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: Schreibe deinen Code unten
// 1. Erstelle ein assoziatives Array aus der JSON-Eingabe mit json_decode
// 2. Greife auf den mit $key1 verknüpften Wert zu und gib ihn aus
// 3. Speichere den mit $key2 verknüpften Wert in einer Variable 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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators