Verification: a143cc29221c9be0

Php 2 х мерный массив

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

Двумерный массив в PHP представляет собой массив, хранящий в качестве значений другие массивы. Создаётся он посредством конструктора array():

$flowers = array( array("фиалки", 100 , 15),
                  array("астры", 60 , 25),
                  array("каллы", 180 , 7) 
                ); 

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

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

php
$flowers = array( array("фиалки", 100 , 15),
                  array("астры", 60 , 25),
                  array("каллы", 180 , 7) 
                ); 

echo "

Выполняем доступ к элементам вручную

"
; 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 3; $row++) { echo "
  • Номер строки
  • $row"; echo "
      "
    ; for ($col = 0; $col 3; $col++) { echo "
  • "
  • .$flowers[$row][$col].""; } echo ""; echo ""; } echo ""; ?>

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

        $flowers = array( array( "Название" => "фиалки", 
                             "Стоимость" => 100,
                             "Количество" => 15 
                           ),
                      array( "Название" => "астры", 
                             "Стоимость" => 60,
                             "Количество" => 25,
                           ),
                      array( "Название" => "каллы", 
                             "Стоимость" => 180,
                             "Количество" => 7 
                           )
                    );
    

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

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

        php
    $flowers = array( array( "Название" => "фиалки", 
                             "Стоимость" => 100,
                             "Количество" => 15 
                           ),
                      array( "Название" => "астры", 
                             "Стоимость" => 60,
                             "Количество" => 25,
                           ),
                      array( "Название" => "каллы", 
                             "Стоимость" => 180,
                             "Количество" => 7 
                           )
                    );
    
    echo "

    Выполняем доступ к элементам ассоциативного массива вручную

    "
    ; for ($row = 0; $row 3; $row++) { echo $flowers[$row]["Название"]." стоимость ".$flowers[$row]["Стоимость"] ." количество ".$flowers[$row]["Количество"]; echo "
    "
    ; } echo "

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

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

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

        $flowers = [ [ "Название" => "фиалки", 
                   "Стоимость" => 100,
                   "Количество" => 15 
                 ],
                 [ "Название" => "астры", 
                   "Стоимость" => 60,
                   "Количество" => 25,
                 ],
                 [ "Название" => "каллы", 
                   "Стоимость" => 180,
                   "Количество" => 7 
                 ]
               ];