Элементы массива могут быть не только строками
и числами, но и массивами. В этом случае
у нас получится массив массивов или многомерный
массив. В следующем примере массив $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]]];
?>
Найдите сумму всех элементов приведенного массива. Обращайтесь к каждому элементу по отдельности, без цикла.