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

Элементы массива могут быть не только строками и числами, но и массивами. В этом случае у нас получится массив массивов или многомерный массив. В следующем примере массив $arr состоит из трех элементов, в свою очередь являющихся массивами:

<?php $arr = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]; ?>

Перепишем в более понятном виде:

<?php $arr = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ]; ?>

В зависимости от уровня вложенности массивы могут быть двухмерными - массив массивов, трехмерными - массив массивов массивов (ну и так далее - четырехмерными, пятимерными и тп).

Приведенный выше массив является двухмерным, так как внутри одного массива расположены другие подмассивы и уже в этих подмассивах нет других массивов. Чтобы вывести какой-либо элемент из двухмерного массива следует писать уже не одну пару квадратных скобок, а две:

<?php $arr = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ]; echo $arr[0][1]; // выведет 'b' echo $arr[1][2]; // выведет 'f' ?>

Дан следующий массив:

<?php $arr = [ ['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k', 'l'], ]; ?>

Выведите с его помощью элементы с текстом 'l', 'e', 'g' и 'a'.

Дан следующий массив:

<?php $arr = [[1, 2], [3, 4], [5, 6]]; ?>

Найдите сумму всех его элементов.

Трехмерный массив

Вот пример трехмерного массива:

<?php $arr = [ [ ['a', 'b'], ['c', 'd'], ], [ ['e', 'f'], ['g', 'h'], ], [ ['i', 'j'], ['k', 'l'], ], ]; ?>

Для вывода элементов из такого массива уже необходимо написать три квадратные скобки:

<?php echo $arr[0][0][0]; // выведет 'a' echo $arr[2][1][0]; // выведет 'k' ?>

Дан следующий массив:

<?php $arr = [ [ [1, 2], [3, 4], ], [ [5, 6], [7, 8], ], ]; ?>

Найдите сумму всех элементов приведенного массива.

Ассоциативные массивы

Многомерные массивы также могут быть ассоциативными, например, вот так:

<?php $arr = [ 'user1' => [ 'name' => 'name1', 'age' => 31, ], 'user2' => [ 'name' => 'name2', 'age' => 32, ], ]; ?>

Давайте с помощью этого массива выведем на экран, к примеру, имя второго юзера:

<?php echo $arr['user2']['name']; // выведет 'name2' ?>

Дан следующий массив:

<?php $arr = [ 'boys' => [1 => 'Коля', 2 => 'Вася', 3 => 'Петя'], 'girls' => [1 => 'Даша', 2 => 'Маша', 3 => 'Лена'], ]; ?>

Выведите с помощью этого массива имя первого мальчика и имя второй девочки.

Дан следующий массив:

<?php $arr = [ 'ru' => ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс'], 'en' => ['mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'], ]; ?>

Выведите с помощью этого массива английское название среды.

Дан следующий массив:

<?php $arr = [ [ 'name' => 'user1', 'age' => 30, 'salary' => 1000, ], [ 'name' => 'user2', 'age' => 31, 'salary' => 2000, ], [ 'name' => 'user3', 'age' => 32, 'salary' => 3000, ], ]; ?>

Выведите с помощью этого массива сумму зарплат первого и третьего юзера.

Произвольные массивы

Многомерные массивы не обязательно должны быть такими, как мы рассмотрели выше. Посмотрите, например, на следующий массив:

<?php $arr = [['a', 'b', [1, 2, 3], [4, 5]], ['d', ['e', 'f']]]; ?>

Если переписать его в более понятном виде, то мы увидим, что этот массив "неправильный". В нем рядом с обычными элементами располагаются массивы:

<?php $arr = [ [ 'a', 'b', [1, 2, 3], [4, 5], ], [ 'd', ['e', 'f'], ], ]; ?>

Дан следующий массив:

<?php $arr = [[1, 2, 3, [4, 5, [6, 7]]], [8, [9, 10]]]; ?>

Найдите сумму всех элементов приведенного массива. Обращайтесь к каждому элементу по отдельности, без цикла.