Многомерные массивы

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

Мы уже знаем, что массивы — это круто. А многомерные массивы — это ещё круче! Представь, что это массив, элементами которого являются другие массивы. Это позволяет создавать сложные и структурированные наборы данных, прямо как таблицы в Excel или списки контактов, где у каждого контакта есть свои поля: имя, телефон, email.

В этом тренажере мы будем погружаться в мир "массивов в массивах". Ты научишься создавать двумерные и более сложные структуры, получать доступ к вложенным элементам, изменять их и, что самое важное, перебирать с помощью циклов. Задания построены так, чтобы постепенно усложнять задачу: от простого создания "матрицы" до работы с вложенными ассоциативными массивами. Поехали!

Список тем

Создание двумерного массива

id: 38959_task_multi_1

Давай создадим простой двумерный массив, который можно представить как таблицу или матрицу 2x2. Каждый элемент основного массива сам является массивом. Заполни пропуски, чтобы создать второй вложенный массив с числами 3 и 4.

Заполните пропуски
<?php

// Создаем матрицу 2x2
$matrix = [
    [1, 2],
    input1S 3, 4 input2S
];

print_r($matrix);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Доступ к элементу в двумерном массиве

id: 38959_task_multi_2

У нас есть список пользователей. Каждый пользователь — это ассоциативный массив. Твоя задача — получить e-mail второго пользователя (Анны). Заполни пропуски, чтобы правильно обратиться к нужному элементу.

Заполните пропуски
<?php

$users = [
    ['name' => 'John', 'email' => 'john@example.com'],
    ['name' => 'Anna', 'email' => 'anna@example.com']
];

echo $users[input1S][input2S];
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправь синтаксис доступа

id: 38959_task_multi_3

Программист попытался получить доступ к элементу двумерного массива, но использовал неверный синтаксис, пытаясь передать оба индекса в одной паре скобок. Исправь эту строку, чтобы код вывел число 40.

Найдите ошибку и исправьте
<?php
$matrix = [
    [10, 20],
    [30, 40]
];
echo $matrix[1, 1];
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что находится в ячейке?

id: 38959_task_multi_4

Перед тобой массив, представляющий собой игровое поле для "крестиков-ноликов". Внимательно проанализируй структуру и код, который пытается получить значение из центральной ячейки. Напиши, что именно выведет этот скрипт.

Что должно получиться?
<?php

$board = [
    ['X', 'O', 'X'],
    ['O', 'X', 'O'],
    ['O', 'X', 'O']
];

echo $board[1][1];
Сообщения
Проверить
Показать подсказку

Достань глубоко вложенное значение

id: 38959_task_multi_5

Структуры данных могут быть довольно сложными. Здесь у нас есть информация о продукте, включая данные о поставщике. Твоя задача — извлечь название города поставщика ('city'). Перетащи правильные ключи из банка, чтобы построить путь к нужному значению.

Нужно правильно расставить в пропуски предложенные варианты
<?php
$product = [
    'id' => 101,
    'name' => 'Laptop',
    'supplier' => [
        'name' => 'Tech Corp',
        'address' => [
            'street' => '123 Main St',
            'city' => 'Silicon Valley'
        ]
    ]
];

echo $product[input1S][input2S][input3S];
'supplier'
'address'
'city'
'name'
'id'
'street'
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Результат изменения вложенного значения

id: 38959_task_multi_6

Мы изменяем статус первого заказа в списке. Проанализируй код, который сначала создает массив заказов, а затем обновляет значение во вложенном массиве. Что выведет `var_dump` после этого изменения?

Выберите правильный вариант ответа
<?php
$orders = [
    ['id' => 5, 'status' => 'processing'],
    ['id' => 6, 'status' => 'new']
];

$orders[0]['status'] = 'shipped';

var_dump($orders[0]['status']);
Сообщения
Проверить
Показать подсказку

Добавление элемента во вложенный массив

id: 38959_task_multi_7

У нас есть массив, описывающий плейлисты. Нужно добавить новую песню ('Song C') во второй плейлист ('Rock'). Заполни пропуски, чтобы выполнить эту операцию.

Заполните пропуски
<?php
$playlists = [
    'Pop' => ['Song A'],
    'Rock' => ['Song B']
];

$playlists[input1S]input2S = 'Song C';

print_r($playlists['Rock']);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Собери вложенный цикл для вывода матрицы

id: 38959_task_multi_8

Вложенные циклы — ключ к обработке многомерных массивов. Собери из фрагментов кода работающий скрипт, который перебирает двумерный массив `$matrix` и выводит все его элементы (числа) через пробел. Некоторые строки лишние.

Перетяните в правильном порядке строки из одного блока в другой
$matrix = [[1, 2], [3, 4]];
foreach ($matrix as $row) {
    }
        echo $number . " ";
<?php
    foreach ($row as $number) {
}
echo $row;
foreach ($matrix as $number) {
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
🚀 Визуализатор кода
0 / 0
Скорость:
Режим:
💡 Что происходит?
Загрузите пример для начала...
🤔
Проверка знаний
История шагов
Готов
НайтиКурс.Ру