Изменение элементов 2D-массива
Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 29 из 68.
Как только вы научитесь получать доступ к элементам двумерного массива, следующим логическим шагом будет изучение того, как изменять их значения. Изменение элементов в двумерном массиве использует тот же синтаксис двойной индексации, что и доступ к ним, но с оператором присваивания для установки нового значения.
Вот как можно изменить конкретный элемент в двумерном массиве:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// Изменяем центральную ячейку на 'X'
$gameBoard[1][1] = "X";
// Изменяем верхний левый угол на 'O'
$gameBoard[0][0] = "O";
?>Синтаксис $gameBoard[1][1] = "X" обращается к строке 1, столбцу 1 (центру сетки 3x3) и присваивает значение "X" этой позиции. Это напрямую изменяет исходный массив, заменяя любое значение, которое было там раньше.
Эта техника модификации необходима для обновления состояний игры, изменения данных в таблицах или любого сценария, где вам нужно изменить определенные позиции в вашей сеточной структуре данных. Способность точно определять и обновлять конкретные местоположения делает двумерные массивы идеальными для представления динамической, изменяемой информации, организованной в строки и столбцы.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Задание
ЛегкоВы получите четыре входных данных: двумерный массив, представляющий схему рассадки в формате JSON, индекс строки, индекс столбца и имя нового пассажира. Прочитайте все четыре входных значения, преобразуйте строку JSON в двумерный массив, измените элемент в указанной строке и столбце, присвоив ему имя нового пассажира, и выведите обновленный двумерный массив с помощью print_r().
Двумерный массив представляет собой схему рассадки, где каждый элемент содержит имя пассажира или пустую строку для свободных мест.
Формат входных данных:
- Первая строка: JSON-массив, представляющий схему рассадки (пример:
[["Alice","Bob",""],["","Charlie","Diana"],["","",""]]) - Вторая строка: Индекс строки (целое число)
- Третья строка: Индекс столбца (целое число)
- Четвертая строка: Имя нового пассажира (строка)
Ожидаемый результат: Измененный двумерный массив, отображаемый с помощью print_r()
Шпаргалка
Чтобы изменить элементы в двумерном массиве, используйте синтаксис двойной индексации с оператором присваивания:
$array[row][column] = newValue;Пример изменения игрового поля:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// Изменяем центральную ячейку на 'X'
$gameBoard[1][1] = "X";
// Изменяем верхний левый угол на 'O'
$gameBoard[0][0] = "O";
?>Это напрямую изменяет исходный массив, заменяя значение в указанной позиции. Техника модификации необходима для обновления динамических данных, организованных в виде строк и столбцов.
Попробуйте сами
<?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);
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутые функции
Анонимные функцииЗамыкания и 'use'Стрелочные функцииCallback-функцииИспользование 'call_user_func'Функции переменныхПередача по ссылкеРекурсивные функцииИтоги: ассорти из функций4Многомерные массивы
Создание 2D-массиваДоступ к элементам 2D-массиваИзменение элементов 2D-массиваИтерация с вложенными цикламиДвумерные ассоциативные массивыИтоги: Упражнение «Простая сетка»2Продвинутая работа с массивами
Добавление с помощью 'array_push'Удаление с помощью 'array_pop'Добавление с помощью 'array_unshift'Удаление с помощью 'array_shift'Слияние индексных массивовСлияние ассоциативных массивовИзвлечение с помощью 'array_slice'Поиск значений с 'in_array'Поиск ключей с 'array_search'Итоги: Упражнение «Плейлист»3Сортировка массивов
Сортировка индексных массивов по возрастаниюСортировка индексных массивов по убываниюСортировка ассоциативных массивов по значениюСортировка ассоциативных массивов по ключуСортировка в естественном порядкеПользовательская сортировка с помощью 'usort'Итоги: Сортировка таблицы лидеров