Когда мы разбирали тему о типах данных в PHP, то мы обещали написать отдельный пост про массивы. Дело в том, что массивы в PHP, очень сложная для начинающих программистов тема. К этой теме также настоятельно рекомендую подойти внимательно, т.к. от понимания работы массивов будет зависеть понимает вещей, в которых они используются, например циклы. Итак, поехали!
Понятие массива в языке программирования
В который раз обратимся к Wikipedia за знаниями:
Массив — это объект данных, в котором хранится несколько единиц данных, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.
Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.
Ну как понятно? Для начинающих вряд ли. Разберем это определение по ключевым словам:
объект данных, единицы информации, индексы
Давайте сначала познакомимся с простейшим примером массива в PHP и на нем разберем эти понятия:
<?php $massiv = array('1' => 'единица информации 1', '2' => 'единица информации 2'); ?>
Объект данных — проще говоря, это тип данных. Здесь вы можете почитать, что такое тип данных, и какие используются типы данных в PHP.
Единица информации — это какое угодно значение: число 5, строка ‘Привет!’ или булево значение false. Просто значение.
Индекс — это адрес единицы информации в массиве. В массиве не может быть 2-х одинаковых индексов. Индекс точно указывает расположение единицы информации. Индекс для массива — это то же самое, что полный почтовый адрес для человека. По индексу (адресу) вы легко можете узнать значение (человека, проживающего по этому адресу).
Массивы в PHP
В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы.
Понятие ассоциативного массива (Wikipedia):
Ассоциативный массив (словарь, хэш) — абстрактный тип данных (интерфейс к хранилищу данных), позволяющий хранить пары (ключ, значение) и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу.
Опять же, определение написано с учетом того, что вы знакомы со структурами данных (словарь, хэш) и такими понятиями как абстрактный тип данных, интерфейс и т.д. Уберем лишнее (суть останется та же самая):
Ассоциативный массив — это тип данных , позволяющий хранить пары (ключ, значение) и поддерживающий операции добавления пары, а также поиска и удаления пары по ключу.
Пример ассоциативного массива:
<?php // Имя и фамилия иного из Ночного Дозора, кто не видел $massiv = array( 'name' => 'Антон' , 'surname' => 'Городецкий'); ?>
Этот массив имеет 2 пары ключ-значение:
- ‘name’ => ‘Антон’
- ‘surname’ => ‘Городецкий’
В качестве ключей выступают ‘name’ и ‘surname’, а значений — ‘Антон’ и ‘Городецкий’.
С синтаксисом вроде как разобрались и теперь можно переходить к практике. Внимательно читаем и задаем вопросы. Следующий пост будет про примеры использования массивов.