Давайте теперь научимся делать перебор многомерных массивов с помощью циклов. Пусть у нас дан следующий массив:
<?php
$arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
?>
Как вы видите, этот массив двухмерный, а
это значит, что для его перебора нужно два
вложенных цикла foreach
:
<?php
foreach ($arr as $sub) {
foreach ($sub as $elem) {
echo $elem;
}
}
?>
Дан следующий массив:
<?php
$arr = [[1, 2, 3], [4, 5, 6, 7], [8, 9]];
?>
С помощью двух вложенных циклов найдите сумму элементов этого массива.
Трехмерный массив
А вот для перебора трехмерного массива уже нужно использовать три вложенных цикла. Пусть для примера у нас дан вот такой массив:
<?php
$arr = [
[
['a', 'b'],
['c', 'd'],
],
[
['e', 'f'],
['g', 'h'],
],
[
['i', 'j'],
['k', 'l'],
],
];
?>
Давайте выведем все его элементы на экран:
<?php
foreach ($arr as $sub) {
foreach ($sub as $subsub) {
foreach ($subsub as $elem) {
echo $elem;
}
}
}
?>
Дан следующий массив:
<?php
$arr = [
[
[1, 2, 3],
[6, 7, 8],
[3, 8, 4],
[6, 7, 9],
],
[
[9, 1, 2],
[4, 5, 6],
],
[
[9, 1, 2],
[4, 5, 6],
[5, 6, 3],
],
];
?>
С помощью трех вложенных циклов найдите сумму элементов этого массива.
Работа с ключами
Работа с ключами при переборе многомерных массивов осуществляется также, как и при переборе одномерных. Пусть для примера дан вот такой массив:
<?php
$arr = [
'user1' => [
'name' => 'name1',
'age' => 31,
],
'user2' => [
'name' => 'name2',
'age' => 32,
],
];
?>
Давайте переберем его вложенными циклами и выведем его элементы с ключами в формате ключ ключ элемент:
<?php
foreach ($arr as $key1 => $sub) {
foreach ($sub as $key2 => $elem) {
echo $key1 . ' ' . $key2 . ' ' . $elem . '<br>';
}
}
?>
Дан следующий массив:
<?php
$arr = [
[
'name' => 'user1',
'age' => 30,
'salary' => 1000,
],
[
'name' => 'user2',
'age' => 31,
'salary' => 2000,
],
[
'name' => 'user3',
'age' => 32,
'salary' => 3000,
],
];
?>
Выведите элементы этого массива в формате ключ-значение.
Дан следующий массив:
<?php
$arr = [
'group1' => ['user11', 'user12', 'user13', 'user43'],
'group2' => ['user21', 'user22', 'user23'],
'group3' => ['user31', 'user32', 'user33'],
'group4' => ['user41', 'user42', 'user43'],
'group5' => ['user51', 'user52'],
];
?>
С помощью двух вложенных циклов выведите элементы этого массива в формате имя группы - имя юзера.