- Массивы в PHP
- Создание массива
- Ключи и значения массива
- Простые и ассоциативные массивы
- Вывод массива
- Добавление и удаление элементов
- Двумерные и многомерные массивы
- Задача 1
- Задача 2
- Массивы в PHP: что это и как с ними работать на примерах
- Зачем они нужны
- Типы массивов: численно-индексированный, ассоциативный, многомерный
- Численно-индексированный массив
- Пример
- Ассоциативные массивы
- Пример
- Многомерный массив
- Пример
- Как создать массив в PHP
- Численно-индексированные
- Ассоциативные
- Многомерные
- Двумерные массивы
Массивы в PHP
Массив — это переменная, которая может содержать в себе сразу несколько значений.
Например, так можно объявить массив с тремя значениями:
В коде выше мы создаём переменную $heroes и добавляем в неё 3 строки.
Массивы также отлично подходят для объединения нескольких связанных между собой значений, например характеристик товара:
'ABC123', 'name' => 'Смартфон iPhone X 64Gb White', 'price' => 50000, ];
Создание массива
Для создания пустого массива просто укажите квадратные скобки вместо значения:
PHP сообщает нам, что в переменной лежит массив (англ. array), в котором находится 0 значений.
Чтобы объявить массив с данными, просто перечислите значения в квадратных скобках:
Теперь в переменной $brands лежит массив, состоящий из трёх элементов.
Создание массивов с помощью квадратных скобок работает начиная с версии PHP 5.4. До этого использовался более громоздкий синтаксис:
Ключи и значения массива
Массив состоит из ключей (индексов) и соответствующих им значений. Это можно представить как таблицу:
Ключ | Значение |
---|---|
0 | Samsung |
1 | Apple |
2 | Nokia |
У каждого значения есть свой ключ. В массиве не может быть несколько одинаковых ключей.
Вернёмся к предыдущему примеру и посмотрим, что лежит в массиве:
array(3) < [0]=>string(7) "samsung" [1]=> string(5) "apple" [2]=> string(5) "nokia" >
Когда мы создаём массив без указания ключей, PHP генерирует их автоматически в виде чисел, начиная с 0.
Указание ключей происходит с помощью конструкции => :
'iPhone', 'price' => 5000]; // Большие массивы удобней писать так: $product2 = [ 'name' => 'Samsung', 'price' => 5000, 'status' => true, 'shipping' => 200 ];
Простые и ассоциативные массивы
Когда мы создаём массив с числовыми ключами, такой массив называется простым или числовым.
Когда мы создаём массив и указываем строковые ключи вручную, такой массив называется ассоциативным, поскольку по названию ключа можно понять назначение этого значения — название товара, возраст человека и т.д.
Вывод массива
Вывод элементов массива выглядит следующим образом:
Для вывода содержимого массива можно использовать как уже знакомую нам функцию var_dump() , так и print_r() , которая предоставляет информацию о массивах в чуть более удобном для чтения виде.
Однако обе функции выводят информацию на одной строке, что в случае с массивами превращается в кашу. Чтобы этого не происходило, используйте тег :
'; print_r(['val1', 'val2', 'val3']); echo '
';
Array ( [0] => val1 [1] => val2 [2] => val3 )
Также вывести содержимое массива можно с помощью цикла foreach:
Подробней работу цикла foreach мы разберём в отдельном уроке.
Добавление и удаление элементов
Добавление новых элементов в массив выглядит следующим образом:
'Вася']; // Добавляем элементы $arr['age'] = 20; $arr['status'] = 'В смятении'; // Перезаписываем элемент $arr['status'] = 'Спокоен';
Но если название ключа не играет роли, его можно опустить:
Удалить элемент массива можно с помощью функции unset() :
Двумерные и многомерные массивы
В качестве значения массива мы можем передать ещё один массив:
'Вася']; // Добавляем новый элемент, содержащий массив $human['hands'] = ['left', 'right']; print_r($human);
В примере выше мы создали массив $human , а затем внутри него создали ещё один массив $human[‘hands’] . Результат в браузере:
Array ( [name] => Вася [hands] => Array ( [0] => left [1] => right ) )
Обратиться к элементу многомерного массива можно так:
Теперь мы можем хранить в одном массиве целую базу товаров:
'iPhone', 'price' => 5000, 'status' => true ], [ 'name' => 'Samsung Galaxy', 'price' => 5000, 'status' => true ] ];
Или альтернативный вариант:
'iPhone', 'price' => 5000, 'status' => true ]; $products[] = [ 'name' => 'Samsung Galaxy', 'price' => 5000, 'status' => true ];
Задача 1
1. Создайте массивы $user1 и $user2 , заполните ключи name и age в каждом массиве любыми значениями.
2. Увеличьте значение age у обоих массивов на 50%.
3. Выведите на экран значение ключа name обоих пользователей.
'Петросян', 'age' => 50 ]; $user2 = [ 'name' => 'Мартиросян', 'age' => 40 ]; $user1['age'] *= 1.5; $user2['age'] *= 1.5; echo $user1['name'], ' ', $user2['name'];
Задача 2
1. Создайте массив $city , добавьте в него ключ name с любым значением.
2. Создайте подмассив streets с любыми случайными улицами. Каждая улица должна иметь имя (name) и количество домов (buildings_count), а также подмассив из номеров домов (old_buildings), подлежащих сносу.
'Ростов', 'streets' => [ [ 'name' => 'Первая улица', 'buildings_count' => 15, 'old_buildings' => [4, 8, 12] ], [ 'name' => 'Вторая улица', 'buildings_count' => 5, 'old_buildings' => [1, 3] ], [ 'name' => 'Третья улица', 'buildings_count' => 23, 'old_buildings' => [2, 7, 12, 18] ], ] ]; // Жесть, да? echo $city['streets'][2]['old_buildings'][1]; // 7
Массивы в 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: путем прямого присвоения значений (с использованием индекса).
Обратите внимание: доступ к элементам массива осуществляется по их индексу.
Запомнить: индекс всегда начинается с 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-х уровней.
Размерность указывает на количество индексов, необходимых для выбора элемента. Например:
- Для выбора элемента двумерного массива нужно два индекса.
- Для трехмерного — три индекса.
- И так далее.
Двумерные массивы
Двумерный массив — это массив массивов. Трехмерный массив будет массив массивов массивов. И так далее.
Представим что у нас есть какие-нибудь данные, например, разные предметы одежды. Для удобства определим их в таблицу:
В наличии (in stock)
Продано (sold)