1

Topic: Создание и разбор многомерного массива

Очень часто в программирование встречаются массивы. Массив (Array) является смешанным типом данных таким же как Объекты (Object).

Массивы делятся на два вида это числовые (индексные) и ассоциативные (текстовые). Разница между ними лишь в том, что ключи индексного массива является числовыми, а в ассоциативном текстовые.

Для человека очень удобно работать с тестом, по этому легче обрабатывать ассоциативные массивы нежели индексные. В индексных массивах ключ массива начинается с 0.

2

Re: Создание и разбор многомерного массива

Кроме массивов есть еще так называемые многомерные массивы – массив в массиве. Многомерные массивы могу иметь неограниченную глубину вхождений. Для новичков понять структуру многомерного массива сложно, так как они не понимают как выглядит массив. Для примера возьмем два многомерных массива один числовой другой комбинированный.

Spoiler
Array
(
    [0] => Array
        (
            [0] => KIA
            [1] => BMW
            [2] => MAZDA
            [3] => OPEL
        )

    [1] => Array
        (
            [0] => Красная
            [1] => Зеленая
            [2] => Черная
        )

)

Слово Array говорит нам что это Массив, далее следует [] скобки в которых находится ключ массива, далее следует еще одно слово Array с [] скобками и также с ключами. Так вот 0 это ключ первого массива, в этом массиве находится еще один массив у которого свои ключи. Чтобы нам вывести модель MAZDA то ключ будет [0][2] где 0 это ключ верхнего массива, а 2 ключ дочернего массива.

3

Re: Создание и разбор многомерного массива

В ассоциативных массивах все тоже самое, только ключи не числовые, а текстовые.

Spoiler
Array
(
    [Авто] => Array
        (
            [0] => KIA
            [1] => BMW
            [2] => MAZDA
            [3] => OPEL
        )

    [Краска] => Array
        (
            [0] => Красная
            [1] => Зеленая
            [2] => Черная
        )

) 

В данном случае чтобы вывести MAZDA ключи массива будут такие [Авто][2]

4

Re: Создание и разбор многомерного массива

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

Spoiler
<?php
//Создаем многомерный числовой (индексный) массив
 $arr1 = array(
                array(
                        'KIA',
                        'BMW',
                        'MAZDA',
                        'OPEL'
                        ),
                array(
                        'Красная',
                        'Зеленая',
                        'Черная'
                        )
                );
//Создаем многомерный комбенированый массив
$arr2 = array(
                'Авто' => array(
                                'KIA',
                                'BMW',
                                'MAZDA',
                                'OPEL'
                                ),
                'Краска' => array(
                                    'Красная',
                                    'Зеленая',
                                    'Черная'
                                    )
                );
  
 //Разбираем многомерный индексный массив
 echo '<ul>';
 //Прогоняем циклом по первой ветки массива
 for($i = 0; $i < count($arr1); $i++)
 {
    echo '<li>'. $i .'</li><ul>'; 
    //Вспомогательный цикл для прохождения по
    //данным из верхнего массива
    for($j = 0; $j < count($arr1[$i]); $j++)
    {
        echo '<li>'. $arr1[$i][$j] .'</li>';
    }
    echo '</ul>';
 }
 echo '</ul>';
  
  //Разбираем многомерный комбенированного массива
  echo '<ul>';
 //Прогоняем циклом по первой ветки массива
 foreach($arr2 as $key => $val)
 {
    echo '<li>'. $key .'</li><ul>';   
    //Вспомогательный цикл для прохождения по
    //данным из верхнего массива
    for($j = 0; $j < count($val); $j++)
    {
        echo '<li>'. $val[$j] .'</li>';
    }
    echo '</ul>';
 }
 echo '</ul>';
 
?>