Menu
CoddyTech

修改二维数组元素

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 29 课,共 68 课。

掌握如何访问二维数组中的元素后,下一步自然就是学习如何修改它们的值。修改二维数组中的元素时,使用的双重索引语法与访问元素时相同,只是要用赋值运算符设置新值。

下面介绍如何修改二维数组中的特定元素:

<?php
$gameBoard = [
    ["", "", ""],
    ["", "", ""],
    ["", "", ""]
];

// 将中心格子改为 'X'
$gameBoard[1][1] = "X";

// 将左上角的格子改为 'O'
$gameBoard[0][0] = "O";
?>

语法 $gameBoard[1][1] = "X" 指向第 1 行、第 1 列(3x3 网格的中心),并将值 "X" 赋给该位置。这会直接修改原数组,替换该位置之前的值。

这种修改技巧对于更新游戏状态、更改表中的数据,或任何需要更改网格状数据结构中特定位置的场景都至关重要。你可以精确定位并更新指定位置,因此二维数组非常适合表示按行和列组织的动态、可变信息。

challenge icon

挑战

简单

你会收到 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);
?>
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: PHP 在线编译器