修改二维数组元素
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 29 课,共 68 课。
掌握如何访问二维数组中的元素后,下一步自然就是学习如何修改它们的值。修改二维数组中的元素时,使用的双重索引语法与访问元素时相同,只是要用赋值运算符设置新值。
下面介绍如何修改二维数组中的特定元素:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// 将中心格子改为 'X'
$gameBoard[1][1] = "X";
// 将左上角的格子改为 'O'
$gameBoard[0][0] = "O";
?>语法 $gameBoard[1][1] = "X" 指向第 1 行、第 1 列(3x3 网格的中心),并将值 "X" 赋给该位置。这会直接修改原数组,替换该位置之前的值。
这种修改技巧对于更新游戏状态、更改表中的数据,或任何需要更改网格状数据结构中特定位置的场景都至关重要。你可以精确定位并更新指定位置,因此二维数组非常适合表示按行和列组织的动态、可变信息。
挑战
简单你会收到 4 个输入:一个表示座位表的 JSON 格式二维数组、一个行索引、一个列索引,以及一个新乘客的姓名。读取这 4 个输入,将 JSON 字符串转换为二维数组,把指定行和列中的元素设为新乘客的姓名,并使用 print_r() 输出更新后的二维数组。
这个二维数组表示一张座位表,其中每个元素包含一位乘客的姓名,或表示空座位的空字符串。
输入格式:
- 第一行:表示座位表的 JSON 数组(示例:
[["Alice","Bob",""],["","Charlie","Diana"],["","",""]]) - 第二行:行索引(整数)
- 第三行:列索引(整数)
- 第四行:新乘客的姓名(字符串)
预期输出:使用 print_r() 显示修改后的二维数组
亲手试试
<?php
// 读取输入
$json_input = trim(fgets(STDIN));
$row_index = intval(fgets(STDIN));
$col_index = intval(fgets(STDIN));
$new_passenger = trim(fgets(STDIN));
// 将 JSON 转换为二维数组
$seating_chart = (array)json_decode($json_input, true);
// TODO:在下方编写代码,修改座位表
// 输出修改后的数组
print_r($seating_chart);
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: PHP 在线编译器