Menu
CoddyTech

按键修改值

本课属于 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 会直接用新值替换旧值。键本身保持不变,只有与之关联的值会更新。

当数据需要随时间变化时,这种方式很有用。例如,更新用户的状态、更改产品的价格,或更正输入错误的信息。键可以作为稳定的引用,而值则可以根据需要修改。

challenge icon

挑战

简单

读取一行输入,其中包含一个表示产品信息的 JSON 对象(例如,{"name": "Laptop", "price": 999, "stock": 50})。

然后再读取 4 个输入:

  • 一个字符串 key1,要更新的第一个键
  • 一个字符串 value1,key1 的新值
  • 一个字符串 key2,要更新的第二个键
  • 一个字符串 value2,key2 的新值

根据 JSON 输入创建一个关联数组,然后:

  1. 将与 key1 关联的值更新为 value1
  2. 将与 key2 关联的值更新为 value2
  3. 打印 key1 对应的更新后的值
  4. 打印 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. 输出更新后的值

?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: PHP 在线编译器