PHP разбор многомерного массива

PHP разбор многомерного массива

PHP разбор многомерного массива

Очень часто в программирование встречаются массивы. Массив (Array) является смешанным типом данных таким же как Объекты (Object). Массивы делятся на два вида это числовые (индексные) и ассоциативные (текстовые). Разница между ними лишь в том, что ключи индексного массива является числовыми, а в ассоциативном текстовые. Для человека очень удобно работать с тестом, по этому легче обрабатывать ассоциативные массивы нежели индексные. В индексных массивах ключ массива начинается с 0.

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


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

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

)

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

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


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

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

) 

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

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


<?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>';

?>

Скачать: PHP разбор многомерного массива


Теги
Поддержи проект:


Copyright © 2014 - 2024 All rights reserved.