Ассоциативный массив php пример

Массивы в PHP: что это и как с ними работать на примерах

Массив в PHP (от англ. Array) — это глобальный объект для хранения набора данных упорядоченным образом. Такой упорядоченный список элементов всегда имеет собственный ключ — он называется индексом, а каждое значение в такой коллекции данных — называется элементом.

Простыми словами, массив в PHP — это набор определённых данных, объединенный под каким-либо названием (другими словами, несколько элементов в пределах одной переменной).

Зачем они нужны

Массив — это такая структура данных, которая хранит одно или несколько однотипных значений в одном объекте. Например: вам требуется хранить 500 чисел. И вместо того, чтобы определять 500 переменных напрямую, достаточно определить массив длиной 500.

И подобные объекты-массивы (array) есть практически во всех популярных языках программирования. По сути — это набор значений однотипных переменных, объединенных общим названием и сгруппированных в зоне распределения.

Сложно? Тогда, представьте список продуктов. Допустим, нам нужно купить:

В массиве эти продукты могут выглядеть следующим образом:

$groceries[0] = "Oranges"; $groceries[1] = "Cheese"; $groceries[2] = "Olives";
$groceries = array('Oranges','Cheese','Olives');

Почему массив — это удобно и красиво? Всё просто: он содержит в себе весь список объектов. Можно быстро добавить или удалить объект из списка, например.

Массив в PHP — не просто метод хранения данных. Скорее — это способ их организации.

Благодаря таким объектам вы можете создать простейшую базу данных и в дальнейшем управлять её содержимым. И обучение работе с массивами — одна из первых задач, с которыми вы столкнетесь, став программистом на PHP.

Типы массивов: численно-индексированный, ассоциативный, многомерный

Существует три разных типа таких объектов.

Запомнить: доступ к каждому значению массива осуществляется с помощью идентификатора, который называется индексом массива.

  1. Численно-индексированный. Это массив с числовым индексом. Доступ к значениям происходит линейно (другими словами, порядок индексов — линейный).
  2. Ассоциативный. Массив со строками в качестве индекса. Элементы находятся в соответствии со значениями ключей (а не в линейном порядке, как в случае с численно-индексированным типом массива).
  3. Многомерный. Массив, содержащий один или несколько массивов, доступ к значениям которых осуществляется с помощью нескольких индексов.
Читайте также:  Оператор возврата в java

Разберём каждый из этих типов подробнее.

Численно-индексированный массив

Элементы массива адресуются индексами (числами). Такой массив может хранить любые данные, например: числа, строки, иные объекты.

Метод 1: согласно синтаксису:

Метод 2: путем прямого присвоения значений (с использованием индекса).

Обратите внимание: доступ к элементам массива осуществляется по их индексу.

Запомнить: индекс всегда начинается с 0.

Пример

Ассоциативные массивы

Элементы в этом типе представлены строковым идентификатором индекса. Этот идентификатор и применяется для доступа к элементам (вместо индекса). Например, вот так:

arrayname = array( "identifier1" => value2, "identifier2" => value2);

Пример

"45", "Boris"=>"47", "Joanna"=>"53"); echo "Pavel is " . $age['Pavel'] . " years old."; ?>

Многомерный массив

Многомерный тип хранит другие массивы по каждому индексу в качестве элемента. Другими словами, многомерные массивы можно представить как «массив массивов».

$mainarrayname = array( "subarrayname1" => array(elements), "subarrayname2" => array(elements) );

Пример

$ages=array( "dev1" => array("a1"=>1,"a2"=>2,"a3"=>3), "com1" => array("h1"=>45,"h2"=>65,"h3"=>35), "man1" => array("m1"=>22,"m2"=>44,"m3"=>5) );
echo $ages["com1"]["h2"]; prints 65

Как создать массив в PHP

В PHP для создания массива используется одноименная функция:

Но все не так просто. Давайте посмотрим на особенности создания каждого вида массива. Начнём с численно-индексированного.

Численно-индексированные

Существует два вида численно-индексированных массивов по типу присвоения индекса:

1. Автоматическое присвоение. Пример:

$animals = array("Cat", "Dog", "Mouse");

(помните: индекс всегда начинается с 0).

2. Ручное присвоение. Пример:

$cars[0] = "Cat"; $cars[1] = "Dog"; $cars[2] = "Mouse";

Ассоциативные

Напомним: это массивы, использующие «именованные» ключи, которые им присваивают (со строками-индексами).

Существует два способа создания ассоциативного массива:

$age = array("Papa"=>"45", "Baba"=>"77", "Mama"=>"53");

2 способ — более наглядный для объемных списков:

$age['Papa'] = "45"; $age['Baba'] = "77"; $age['Mama'] = "53".

Многомерные

Напомним: это массив, содержащий один или несколько массивов.

PHP поддерживает многомерные массивы глубиной в два / три / четыре / пять и более уровней. Но начинающим лучше воздержаться от работы с объектами глубже 3-х уровней.

Размерность указывает на количество индексов, необходимых для выбора элемента. Например:

  • Для выбора элемента двумерного массива нужно два индекса.
  • Для трехмерного — три индекса.
  • И так далее.

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

Двумерный массив — это массив массивов. Трехмерный массив будет массив массивов массивов. И так далее.

Представим что у нас есть какие-нибудь данные, например, разные предметы одежды. Для удобства определим их в таблицу:

Читайте также:  Иллюстрация параграфа 1

В наличии (in stock)

Продано (sold)

Источник

Ассоциативные массивы в PHP с примерами

Массивы — способ хранить много похожей информации в одном месте.

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

Зачем нужны массивы

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

Каждая коробка — элемент массива, номер под ней — индекс. То, что лежит внутри коробки — значение элемента.

Как создать массив в PHP

Чтобы создать массив в PHP напишем так:

Теперь есть два способа туда что-то добавить. Если мы знаем, на какое место в массиве вставить элемент, используем индекс.

$my_array[1] = "Кухня" $my_array[2] = "Спальня" 

Если мы не знаем конкретные индексы или просто хотим добавить элементы в массив по порядку, нужна такая запись:

$my_array[] = "Кухня" $my_array[] = "Спальня" 

Нумерация в массивах

По умолчанию счёт элементов массива идёт от нуля. То есть при обращении к коробкам нужно помнить, что у первой номер ноль, у второй — 1, и так далее.

Здесь у второго элемента массива номер 1, а значение — 2

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

$a[2] = 4; $a[4] = 16; $a[7] = 128; var_dump($a); 

Этот код создаст массив из трёх элементов, с номерами 2, 4 и 7. Это легко проверить, если запустить его:

array(3) < [2]=>int(4) [4]=> int(16) [7]=> int(128) > 

Ассоциативные массивы в PHP

Это такие же массивы, только у них индекс не число, а строка. Или что угодно ещё. Неудобно подписывать коробки при переезде по номерам — но если написать «Кухня», «Спальня» или «Гостиная», то сразу будет понятно, где что.

Индекс в таком случае называется ключом — можно представить, что коробка закрыта на замок, а знание ключа поможет её открыть.

Возьмём кухонную коробку, в которой лежат ложки, ножи и тарелки. Можно собрать её двумя способами. Так:

$kitchen = array("Spoons"=>"35", "Knifes"=>"3", "Plates"=>"12"); 
$kitchen['Spoons'] = "35"; $kitchen['Knifes'] = "3"; $kitchen['Plates'] = "12"; 

Тогда если нам нужно будет понять, сколько тарелок лежит в коробке, воспользуемся кодом $kitchen[‘Plates’]; .

Как вывести массив

Чтобы вывести всё содержимое ассоциативного массива (в нашем случае, кухонной коробки), воспользуемся циклом foreach , который перебирает все элементы внутри массива.

foreach($kitchen as $item => $item_count) < echo "Item=" . $item . ", Value text language-text">    

А это код страницы foo.php на PHP, который выведет данные формы, полученные через POST . Здесь мы используем те самые значения атрибутов name , чтобы получить данные из соответствующих полей.

То есть username , email и feedback — ключи, которые не отличаются от атрибута name в форме.

Получение данных через $_GET

Это такая же форма, как выше. Разница в method="get" — и чуть позже расскажу, в чём ещё.

Код для получения значений формы через $_GET очень похож на прошлый — нужно заменить POST на GET .

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

С получением данных через GET и POST можно поэкспериментировать в первой главе курса «Знакомство с PHP».

Получение массива из базы MySQL

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

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

$dbc = mysqli_connect('localhost', 'root', 'password', 'my_users'); $query = "SELECT first_name FROM members"; $result = mysqli_query($dbc, $query); $data_array = array(); while ($row = mysqli_fetch_assoc($result))

Разбираем код

$dbc = mysqli_connect('localhost', 'root', 'password', 'my_users'); 

Подключаемся к базе MySQL my_users по адресу localhost , от имени пользователя root , с паролем password .

$query = "SELECT phone FROM members"; 

Запрос — получить номера телефонов всех пользователей из таблицы members .

$result = mysqli_query($dbc, $query); 

Делаем запрос к базе с помощью существующей в PHP функции mysqli_query .

Заводим пустой массив для полученных данных.

while ($row = mysqli_fetch_assoc($result))  

В этой строчке начинаем построчно считывать результаты.

$data_array[$row['name']] = $row['value']; 

И если результаты есть, записываем их в ассоциативный массив.

Упражнения с массивами на PHP

Попробуйте тренажёр, где можно без установки PHP, прямо в браузере написать код для реального сайта. И заодно разобраться с массивами, циклами и тем, как работает вся эта магия.

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Источник

Оцените статью