按键修改值
本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 43 课,共 71 课。
就像你学过如何根据位置修改带索引的数组元素一样,你也可以使用关联数组的键来更新值。语法相同:为现有键赋一个新值。
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>当你为一个已存在的键赋值时,PHP 会直接用新值替换旧值。键本身保持不变,只有与之关联的值会更新。
当数据需要随时间变化时,这种方式很有用。例如,更新用户的状态、更改产品的价格,或更正输入错误的信息。键可以作为稳定的引用,而值则可以根据需要修改。
挑战
简单读取一行输入,其中包含一个表示产品信息的 JSON 对象(例如,{"name": "Laptop", "price": 999, "stock": 50})。
然后再读取 4 个输入:
- 一个字符串
key1,要更新的第一个键 - 一个字符串
value1,key1的新值 - 一个字符串
key2,要更新的第二个键 - 一个字符串
value2,key2的新值
根据 JSON 输入创建一个关联数组,然后:
- 将与
key1关联的值更新为value1 - 将与
key2关联的值更新为value2 - 打印
key1对应的更新后的值 - 打印
key2对应的更新后的值
每个结果单独占一行打印。
示例:
如果输入是 {"name": "Laptop", "price": 999, "stock": 50}、price、1099、stock 和 45,输出应为:
1099
45如果输入是 {"city": "Paris", "country": "France", "population": 2000000}、city、London、country 和 UK,输出应为:
London
UK亲手试试
<?php
// 读取 JSON 输入
$jsonInput = trim(fgets(STDIN));
// 读取要更新的键和值
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// 将 JSON 转换为关联数组
$product = (array)json_decode($jsonInput, true);
// TODO: 在下方编写你的代码
// 1. 将 key1 对应的值更新为 value1
// 2. 将 key2 对应的值更新为 value2
// 3. 输出更新后的值
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器