Modifying Values by Key
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 43 von 71.
Genau wie du gelernt hast, indizierte Array-Elemente anhand ihrer Position zu modifizieren, kannst du Werte in assoziativen Arrays mit ihren Schlüsseln aktualisieren. Die Syntax ist identisch – weise einem bestehenden Schlüssel einen neuen Wert zu.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Wenn Sie einem Schlüssel, der bereits existiert, einen Wert zuweisen, ersetzt PHP einfach den alten Wert durch den neuen. Der Schlüssel selbst bleibt unverändert – nur sein zugeordneter Wert wird aktualisiert.
Das ist nützlich, wenn Daten im Laufe der Zeit geändert werden müssen. Zum Beispiel, das Aktualisieren des Status eines Benutzers, das Ändern des Preises eines Produkts oder das Korrigieren falsch eingegebener Informationen. Der Schlüssel dient als stabiler Referenzpunkt, während der Wert bei Bedarf geändert werden kann.
Aufgabe
EinfachLesen Sie eine Zeile Eingabe, die ein JSON-Objekt enthält, das die Informationen eines Produkts darstellt (z. B. {"name": "Laptop", "price": 999, "stock": 50}).
Dann lesen Sie drei weitere Eingaben:
- Ein String
key1– der erste Schlüssel zum Aktualisieren - Ein String
value1– der neue Wert fürkey1 - Ein String
key2– der zweite Schlüssel zum Aktualisieren - Ein String
value2– der neue Wert fürkey2
Erstellen Sie ein assoziatives Array aus der JSON-Eingabe, dann:
- Aktualisieren Sie den Wert, der mit
key1assoziiert ist, aufvalue1 - Aktualisieren Sie den Wert, der mit
key2assoziiert ist, aufvalue2 - Geben Sie den aktualisierten Wert bei
key1aus - Geben Sie den aktualisierten Wert bei
key2aus
Geben Sie jedes Ergebnis in einer separaten Zeile aus.
Beispiel:
Wenn die Eingaben {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock und 45 sind, sollte die Ausgabe sein:
1099
45Wenn die Eingaben {"city": "Paris", "country": "France", "population": 2000000}, city, London, country und UK sind, sollte die Ausgabe sein:
London
UKSpickzettel
Um Werte in assoziativen Arrays zu aktualisieren, weisen Sie einen neuen Wert einem bestehenden Schlüssel zu:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Wenn Sie einem Schlüssel, der bereits existiert, einen Wert zuweisen, ersetzt PHP den alten Wert durch den neuen. Der Schlüssel bleibt unverändert – nur sein zugehöriger Wert wird aktualisiert.
Probier es selbst
<?php
// JSON-Eingabe lesen
$jsonInput = trim(fgets(STDIN));
// Schlüssel und Werte zum Aktualisieren lesen
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// JSON zu assoziativem Array konvertieren
$product = (array)json_decode($jsonInput, true);
// TODO: Schreibe deinen Code unten
// 1. Aktualisiere den Wert, der mit key1 assoziiert ist, zu value1
// 2. Aktualisiere den Wert, der mit key2 assoziiert ist, zu value2
// 3. Drucke die aktualisierten Werte
?>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