Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast_uchebnika_po_WWW_Okonchat_variant...doc
Скачиваний:
31
Добавлен:
27.09.2019
Размер:
6.06 Mб
Скачать

3.4.2. Создание многомерных массивов

Многомерный массив (массив массивов) предоставляет в распоряжение программистов весьма эффективные средства для хранения информации, требующей дополнительного структурирования. Создать многомерный массив несложно — просто добавьте дополнительную пару квадратных скобок, чтобы вывести массив в новое измерение, как это продемонстрировано в примере (Пример 3-11), где используется подобная сокращённая запись.

Пример 3‑47

<?php

$ocenki1 ["Иванов"][] = 4;

$ocenki1 ["Иванов"][] = 3;

$ocenki1 ["Иванов"][] = 3;

$ocenki1 ["Петров"][] = 3;

$ocenki1["Петров"][] = 5;

$ocenki1 ["Петров"][] = 5;

$ocenki1 ["Сидоров"][] = 4;

$ocenki1 ["Сидоров"][] = 3;

$ocenki1 ["Сидоров"][] = 5;

print_r($ocenki1);

?>

В результате индексами внутренних массивов станут целые числа, начинающиеся с нуля:

Array

(

[Иванов] => Array

(

[0] => 4

[1] => 3

[2] => 3

)

[Петров] => Array

(

[0] => 3

[1] => 5

[2] => 5

)

[Сидоров] => Array

(

[0] => 4

[1] => 3

[2] => 5

)

)

Для создания многомерных массивов можно использовать (так же, как и для одномерных массивов) выражение array.

В качестве примера (Пример 3 -48) рассмотрим массив, в котором хранится информация о десертах и особенностях их приготовления. Обойтись одномерным массивом было бы довольно трудно, но двухмерный массив подходит как нельзя лучше. Ниже приводится код скрипта, описывающий два десерта: один - с ключом, являющимся названием FruitCup, а второй – с названием Brownies, как составляющие двумерного массива $desserts.

Пример 3‑48

<?php

$desserts = array(

"FruitCup" => array("calories"=>"low",

"served"=>"cold",

"preparation"=> "10 minutes"),

"Brownies" => array("calories" => "high",

"served" => "piping hot",

"preparation" => "45 minutes")

);

print_r($desserts);

?>

Результат приведён ниже:

Массив $desserts

Array

(

[FruitCup] => Array

(

[calories] => low

[served] => cold

[preparation] => 10 minutes

)

[Brownies] => Array

(

[calories] => high

[served] => piping hot

[preparation] => 45 minutes

)

)

После создания массива, к его элементам можно обращаться по соответствующим ключам:

$desserts["Fruit Cup"]["preparation"] // возвращает "10 minutes"

$desserts["Brownies"]["calories"] // возвращает "high"

Присваивание значений элементам многомерных массивов выполняется так же, как и в одномерных массивах:

$desserts["Cake"]["calories"] = "too many";

//Присваивает свойству "calories" объекта "Cake" значение "too many"

И хотя в многомерных массивах появляются новые уровни логической организации данных, они создаются практически так же, как и одномерные.

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