Использование многомерных ассоциативных массивов

/ 👁 3626

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

демо версия урока

Что можно хранить в многомерном ассоциативном массиве?

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

Почему удобно? Давайте рассмотрим на простом примере.

Пример использования многомерного ассоциативного массива

Допустим, у нас есть несколько однотипных объектов. Пусть это будут автомобили.

Они все являются автомобилями, но у каждого своя марка и какие-то других характеристики.

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

хранение группы связанных значений в массиве

Думаю, что из-за четырех однотипных объектов мы не будем создавать базу данных. Но мы можем прекрасно сохранить эту информацию в многомерном ассоциативном массиве.

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

Как объявить такой массив? Вспоминаем ассоциативные и многомерные массивы. Это можно сделать, например, вот так:

$Mass1['bmw'] = array('Year'=>'2008','Color'=>'Black','Prise'=>2000000);
$Mass1['volvo'] = array('Year'=>'2010','Color'=>'Red','Prise'=>2500000);
$Mass1['toyota'] = array('Year'=>'2006','Color'=>'Rosa','Prise'=>1500000);

 

Получается, что у нас есть массив «Mass1», который хранит в себе три автомобиля разных марок. А каждый автомобиль хранит свои собственные характеристики (год, цвет, цену).

Самое замечательное, что мы можем обращаться к элементам по их ключам и получать нужную информацию.

Что мы со всем этим можем сделать?

Мы можем организовать вывод информации по каждому автомобилю на веб страницу, например, в форме табличек.

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

Как это сделать? Очень просто!

Для начала нам нужно получить все ключи нашего массива при помощи функции array_keys(), а далее при помощи цикла foreach() организовать вывод таблички для каждого элемента нашего массива.

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

А чтобы получать различные характеристики для любого из автомобилей, мы будем использовать второй ключ, например, «Year» или «Color».

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

В этом заключается одна из прелестей php! Мы можем автоматизировать процессы, упрощая себе жизнь и сокращая число строк кода.

Давайте посмотрим, как это выглядит на практике:

<?php
$Mass1['bmw'] = array('Year'=>'2008','Color'=>'Black','Prise'=>2000000);
$Mass1['volvo'] = array('Year'=>'2010','Color'=>'Red','Prise'=>2500000);
$Mass1['toyota'] = array('Year'=>'2006','Color'=>'Rosa','Prise'=>1500000);
$Auto_keys = array_keys($Mass1);
foreach($Auto_keys as $key)
{
printf("<table bgcolor='#CCCCCC' width='400' border='1'>
<caption style='font-family:Verdana; color:#F00'>".$key."</caption>
<tr><td>Year</td><td>Color</td><td>Prise</td></tr>
<tr><td>".$Mass1[$key]['Year']."</td><td>".$Mass1[$key]['Color']."</td><td>".$Mass1[$key]['Prise']."</td></tr>
</table><br>
");
}
?>

 

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

А результатом нашего небольшого кода будут три таблицы, каждая из которых соответствует своему автомобилю.

Так вот, если нам нужно будет добавить еще один автомобиль, то, как Вы, наверное, уже догадались, нам не нужно будет создавать для него отдельную таблицу или еще что-то. Все, что нужно будет сделать – это добавить еще один элемент массива «Mass1».

Например, вот так:

$Mass1['nissan'] = array('Year'=>'2014', 'Color'=>'Green', 'Prise'=>600000);

 

добавляем еще один элемент многомерного массива
Добавили всего одну строчку кода, а как результат получим еще одну таблицу для еще одного автомобиля.

По-моему, очень удобно. Если Вы когда-либо писали код на чистом html, то можете посчитать, сколько строчек кода мы сэкономили, используя этот ассоциативный многомерный массив.

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

Надеюсь урок был Вам полезен.

Жду Ваших комментариев. Подписывайтесь на обновление блога и делитесь уроком при помощи кнопок соц. сетей, которые Вы можете найти чуть ниже.

С Вами была Анна Котельникова.

До скорых встреч в новых постах.

Leave a Reply