Modifying Values by Key
Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 43 / 71.
İndisli dizi öğelerini konumlarına göre değiştirmeyi öğrendiğiniz gibi, ilişkili dizilerdeki değerleri anahtarlarını kullanarak güncelleyebilirsiniz. Sözdizimi aynıdır; mevcut bir anahtara yeni bir değer atayın.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>Zaten var olan bir anahtara bir değer atadığınızda, PHP eski değeri yenisiyle değiştirir. Anahtarın kendisi değişmeden kalır; yalnızca onunla ilişkili değer güncellenir.
Bu, verilerin zaman içinde değişmesi gerektiğinde yararlıdır. Örneğin, bir kullanıcının durumunu güncellemek, bir ürünün fiyatını değiştirmek veya yanlış girilen bilgileri düzeltmek. Değer gerektiği gibi değiştirilebilirken, anahtar sabit bir referans noktası görevi görür.
Görev
KolayBir ürünün bilgilerini temsil eden bir JSON nesnesi içeren bir girdi satırını okuyun (örneğin, {"name": "Laptop", "price": 999, "stock": 50}).
Ardından dört girdi daha okuyun:
- Bir dize
key1- güncellenecek ilk anahtar - Bir dize
value1-key1için yeni değer - Bir dize
key2- güncellenecek ikinci anahtar - Bir dize
value2-key2için yeni değer
JSON girdisinden bir ilişkisel dizi (associative array) oluşturun, ardından:
key1ile ilişkili değerivalue1olarak güncelleyinkey2ile ilişkili değerivalue2olarak güncelleyinkey1konumundaki güncellenmiş değeri yazdırınkey2konumundaki güncellenmiş değeri yazdırın
Her sonucu ayrı bir satıra yazdırın.
Örnek:
Girdiler {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock ve 45 ise, çıktı şöyle olmalıdır:
1099
45Girdiler {"city": "Paris", "country": "France", "population": 2000000}, city, London, country ve UK ise, çıktı şöyle olmalıdır:
London
UKKendin dene
<?php
// JSON girişini oku
$jsonInput = trim(fgets(STDIN));
// Güncellenecek anahtarları ve değerleri oku
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// JSON'ı ilişkisel diziye (associative array) dönüştür
$product = (array)json_decode($jsonInput, true);
// TODO: Kodunuzu aşağıya yazın
// 1. key1 ile ilişkili değeri value1 olarak güncelle
// 2. key2 ile ilişkili değeri value2 olarak güncelle
// 3. Güncellenmiş değerleri yazdır
?>Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
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