Menu
CoddyTech

按索引修改元素

本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 37 课,共 71 课。

你已经学会了如何通过索引访问数组元素。现在来看看如何修改这些元素。修改数组元素时,使用相同的方括号语法,但要进行赋值。

<?php
$fruits = ["Apple", "Banana", "Cherry"];

$fruits[1] = "Blueberry";

echo $fruits[1]; // Blueberry
?>

这里,我们将索引 1 处的 "Banana" 替换成了 "Blueberry"。原来的值已经消失:数组不会保留更改记录。

只要知道元素的索引,你就可以修改任何元素:

<?php
$scores = [85, 90, 78];

$scores[0] = 95;  // 更新第一个分数
$scores[2] = 82;  // 更新最后一个分数

echo $scores[0]; // 95
echo $scores[2]; // 82
?>

当你需要更新列表中的数据时,这很有用,比如更正拼写错误、更新价格或更改用户状态。索引会告诉 PHP 要替换哪个元素,同时保留其他所有元素不变。

challenge icon

挑战

简单

读取一行输入,其中包含用逗号分隔的值,表示一个颜色列表(例如,Red,Green,Blue,Yellow)。

然后再读取三个输入:

  • 一个整数 index1,表示要修改的第一个索引
  • 一个字符串 newValue1,表示该索引的新值
  • 一个整数 index2,表示要修改的第二个索引

根据逗号分隔的输入创建一个数组,然后:

  1. 将 index1 处的元素修改为 newValue1
  2. 将 index2 处的元素修改为 Purple

按索引从 0 到最后一个索引的顺序,每行输出一个修改后的数组元素。

示例:

如果输入是 Red,Green,Blue,Yellow、0、Orange 和 2,输出应为:

Orange
Green
Purple
Yellow

如果输入是 Apple,Banana,Cherry,Mango,Kiwi、1、Grape 和 4,输出应为:

Apple
Grape
Cherry
Mango
Purple

亲手试试

<?php
// 读取用逗号分隔的颜色
$colorsInput = trim(fgets(STDIN));
$colors = explode(',', $colorsInput);

// 读取用于修改的输入
$index1 = intval(trim(fgets(STDIN)));
$newValue1 = trim(fgets(STDIN));
$index2 = intval(trim(fgets(STDIN)));

// TODO: 在这里编写你的代码
// 1. 将 index1 位置的元素改为 newValue1
// 2. 将 index2 位置的元素改为说明中指定的原文

// 每行输出一个元素
foreach ($colors as $color) {
    echo $color . "\n";
}
?>
quiz icon自我测试

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

基础知识中的所有课

自己练习: PHP 在线编译器