Accessing Values by Key
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 42 von 71.
Nun, da Sie verstehen, was assoziative Arrays sind, lernen wir, wie man Werte daraus abrufen kann. Genau wie indexierte 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 ist $array["key"]—legen Sie den Schlüssel als String in die Klammern, und PHP gibt den zugehörigen Wert zurück. Das ist viel lesbarer, als sich zu merken, dass der Name am Index 0 ist.
Sie können 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. Die Verwendung von "Name" anstelle von "name" würde einen Fehler verursachen, da PHP sie als unterschiedliche Schlüssel behandelt.
Manchmal trifft Daten als ein JSON-String ein statt als PHP-Array. JSON (JavaScript Object Notation) ist ein gängiges Textformat zur Darstellung strukturierter Daten. Die integrierte PHP-Funktion json_decode() konvertiert einen JSON-String in einen PHP-Wert. Wenn Sie true als zweiten Parameter übergeben, gibt sie ein assoziiertes Array statt eines Objekts zurück, sodass Sie Werte mit der vertrauten Syntax $array["key"] zugreifen können.
<?php
$json = '{"name": "Alice", "age": 25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25
?>Aufgabe
EinfachLesen Sie eine Zeile Eingabe, die ein JSON-Objekt enthält, das die Informationen eines Buches darstellt (z. B. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Lesen Sie dann zwei weitere Eingaben:
- Ein String
key1, der den ersten zu zugreifenden Schlüssel darstellt - Ein String
key2, der den zweiten zu zugreifenden Schlüssel darstellt
Um den JSON-String in ein assoziatives Array umzuwandeln, verwenden Sie 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. Sobald dekodiert, können Sie Werte per Schlüssel zugreifen wie bei jedem assoziativen Array, z. B. $array["title"].
Erstellen Sie ein assoziatives Array aus der JSON-Eingabe, dann:
- Greifen Sie auf den Wert zu, der mit
key1assoziiert ist, und drucken Sie ihn aus - Speichern Sie den Wert, der mit
key2assoziiert ist, in einer Variable namens$info - Drucken Sie den in
$infogespeicherten Wert aus
Drucken Sie 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 sein:
The Great Gatsby
F. Scott FitzgeraldWenn die Eingaben {"name": "Laptop", "brand": "TechCo", "price": 999}, brand und price sind, sollte die Ausgabe sein:
TechCo
999Spickzettel
Um Werte aus einem assoziativen Array abzurufen, verwenden Sie den Schlüssel in eckigen Klammern:
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25Die Syntax lautet $array["key"]. Schlüssel sind case-sensitive.
Sie können abgerufene Werte in Variablen speichern:
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // LaptopVerwenden Sie json_decode($jsonString, true), um einen JSON-String in ein assoziatives Array umzuwandeln. Das zweite Argument true weist PHP an, ein Array anstelle eines Objekts zurückzugeben:
$json = '{"name":"Alice","age":25}';
$data = json_decode($json, true);
echo $data["name"]; // Alice
echo $data["age"]; // 25Probier 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 assoziierten Wert zu und drucke ihn
// 3. Speichere den mit $key2 assoziierten Wert in einer Variable namens $info
// 4. Drucke den in $info gespeicherten Wert
?>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