Verification: a143cc29221c9be0

Php array values многомерный массив

Содержание

Двумерные массивы

Двумерный массив - массив, который в качестве значений хранит в себе другие массивы. Рассмотрим создание двумерного массива с помощью конструктора array():

$flowers = array( array("розы", 100 , 15),
                  array("тюльпаны", 60 , 25),
                  array("орхидеи", 180 , 7) 
                ); 

Массив $flowers содержит три массива. Как вы помните, для доступа к элементам одномерного массива надо указывать имя массива и ключ. То же самое верно и в отношении двумерных массивов, с одним исключением: каждый элемент имеет два ключа: первый для выбора строки, второй для выбора столбца.

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

Ручной доступ к элементам";

echo $flowers[0][0]." цена ".$flowers[0][1]." количество ".$flowers[0][2]."
"; echo $flowers[1][0]." цена ".$flowers[1][1]." количество ".$flowers[1][2]."
"; echo $flowers[2][0]." цена ".$flowers[2][1]." количество ".$flowers[2][2]."
"; echo "

Использование циклов для вывода элементов

"; echo "
    "; for ($row = 0; $row Номер строки $row"; echo "
    "; for ($col = 0; $col ".$flowers[$row][$col].""; } echo "
"; echo ""; } echo ""; ?>

Вместо номеров столбцов (индексы, присвоенные им по умолчанию) можно задавать им нужные ключи. Для этой цели используются ассоциативные массивы. Следующий массив будет хранить те же данные, но уже с использованием ключей для именования столбцов с информацией:

$flowers = array( array( "Название" => "розы", 
                         "Цена" => 100,
                         "Количество" => 15 
                       ),
                  array( "Название" => "тюльпаны", 
                         "Цена" => 60,
                         "Количество" => 25,
                       ),
                  array( "Название" => "орхидеи", 
                         "Цена" => 180,
                         "Количество" => 7 
                       )
                );

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

Мы можем перебрать с помощью цикла for только дочерние массивы. Так как они, в свою очередь, являются ассоциативными, то для перебора их элементов нужно воспользоваться циклом foreach, или перебрать элементы вручную:

 "розы", 
                         "Цена" => 100,
                         "Количество" => 15 
                       ),
                  array( "Название" => "тюльпаны", 
                         "Цена" => 60,
                         "Количество" => 25,
                       ),
                  array( "Название" => "орхидеи", 
                         "Цена" => 180,
                         "Количество" => 7 
                       )
                );

echo "

Ручной доступ к элементам ассоциативного массива

"; for ($row = 0; $row "; } echo "

Использование цикла foreach для доступа к элементам

"; echo "
    "; for ($row = 0; $row Номер строки $row"; echo "
    "; foreach($flowers[$row] as $key => $value) { echo "
  • ".$value."
  • "; } echo "
"; echo ""; } echo ""; ?>

Необязательно использовать для создания двумерного массива конструктор array(), можно воспользоваться и коротким синтаксисом - квадратными скобками:

$flowers = [ [ "Название" => "розы", 
               "Цена" => 100,
               "Количество" => 15 
             ],
             [ "Название" => "тюльпаны", 
               "Цена" => 60,
               "Количество" => 25,
             ],
             [ "Название" => "орхидеи", 
               "Цена" => 180,
               "Количество" => 7 
             ]
           ];