Массивы в PHP: урок с примерами

Изучаем массивы в PHP

Давайте разберемся, что же такое массив в PHP. Массив – это просто группа каких-то значений, представленных как единое целое. Представьте себе корзину с фруктами. В ней лежат банан, апельсин, яблоко и виноград. В PHP можно представить такую структуру в виде массива. Корзина – это сам массив, а конкретные фрукты – это его элементы.

Давайте теперь создадим в папке с нашим проектом файл для наших экспериментов с массивами. Назовём его arrays.php.

Объявляется массив в PHP с помощью квадратных скобок, вот так:

Код доступен только после покупки курса PHP для начинающих.

Вот так мы создали пустой массив.

В старом коде можно встретить пример такого определения массива:

Код доступен только после покупки курса PHP для начинающих.

Сейчас такая запись является устаревшей, использовать её не стоит!

Можно также создать массив, в котором уже будут какие-либо значения. Это делается так:

Код доступен только после покупки курса PHP для начинающих.

Вывести получившийся массив можно с помощью уже известной нам функции var_dump:

Код доступен только после покупки курса PHP для начинающих.

И давайте запустим этот наш скрипт, открыв в браузере: http://myproject.loc/arrays.php
Мы увидим следующее:

Код доступен только после покупки курса PHP для начинающих.

Нумерованные массивы

Array – это тип объекта, а именно массив. Size=3 – это размерность массива (содержит 3 элемента). 0, 1, 2 – это ключи массива, которые также называются индексами. По этим ключам хранятся значения, в нашем случае эти значения – строки. Как мы можем видеть, ключи массива нумеруются с нуля, и далее просто увеличиваются на единицу.

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

Например, чтобы получить нулевой элемент массива (с ключом 0), мы должны сделать следующее:

Код доступен только после покупки курса PHP для начинающих.

Результат этого кода:

Код доступен только после покупки курса PHP для начинающих.

Давайте получим элемент с индексом 2:

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

Если же мы попытаемся получить элемент с несуществующим индексом, например – 3:

Код доступен только после покупки курса PHP для начинающих.

То мы получим warning о том, что элемент с таким ключом не найден.
Ошибка при получении несуществующего элемента массива

Добавление и удаление элементов массива

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

Код доступен только после покупки курса PHP для начинающих.

Давайте после этого снова посмотрим на наш массив с помощью var_dump:

Код доступен только после покупки курса PHP для начинающих.

Результат – ещё один элемент с индексом 3:

Код доступен только после покупки курса PHP для начинающих.

Для удаления элементов массива используется конструкция unset. Давайте удалим элемент с индексом 2:

Код доступен только после покупки курса PHP для начинающих.

Результат этого кода:

Код доступен только после покупки курса PHP для начинающих.

Как мы видим, элемента с индексом 2 больше нет, и образовалась «дырка» в порядковых номерах ключей. Если теперь добавить новый элемент, то у него индекс будет равен 4, но эта дыра по-прежнему останется. Это работает именно так и об этом нужно помнить.

И снова вернёмся к ключам

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

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

Как мы видим, ключи теперь – это 5, 3 и 9.
Если теперь добавить элемент в массив, то у него будет индекс, на единицу больше максимального числового значения ключа:

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

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

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

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

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

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

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

Код доступен только после покупки курса PHP для начинающих.

Результат работы этого кода:

Код доступен только после покупки курса PHP для начинающих.

Отлично, а теперь мы можем использовать это внутри HTML-разметки:

Код доступен только после покупки курса PHP для начинающих.

Результат:
Вывод информации из массива

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

Помните, в начале урока я сказал, что по ключам массива хранятся какие-то значения, и в нашем случае это строки. Так вот, элементом массива, вообще говоря, может являться что угодно. Даже сам массив. =)

Давайте на примере нашей статьи – у автора может быть имя и фамилия. И мы хотим хранить их отдельно друг от друга. Тогда автор – это массив с двумя ключами – first_name и last_name.
Давайте сделаем это:

Код доступен только после покупки курса PHP для начинающих.

Результат:

Код доступен только после покупки курса PHP для начинающих.

Вот так всё просто, article – это массив, у которого по ключу author – тоже находится массив.
Чтобы получить имя автора нужно использовать следующий код:

Код доступен только после покупки курса PHP для начинающих.

Сначала в массиве $article получили значение по ключу author, этим значением оказался массив. А затем уже из этого массива получили значение по ключу first_name. И результат этого кода, разумеется:

Код доступен только после покупки курса PHP для начинающих.

Давайте теперь используем эти значения в уже использованном нами шаблоне:

Код доступен только после покупки курса PHP для начинающих.

Результат:
Вывод ассоциативного массива

Разумеется, можно и внутри этого значения создать массив, а внутри него – ещё один, пока не надоест.

В следующем уроке мы рассмотрим более сложные и интересные примеры работы с массивами.