Использование массивов (тип array в PHP) позволяет сильно облегчить многие операции (как правило операции выборки или хранения). Сегодня мы будем говорить о работе с массивами в PHP.
Тип array в PHP (массив)
Тип Array в PHP представляет собой упорядоченную карту данных – тип, который преобразует значения в ключи. Этот тип оптимизирован одновременно в нескольких направлениях, поэтому вы можете использовать его как обычный массив, как список (вектор), как хеш–таблицу (являющуюся реализацией карты), как стэк данных, как очередь и т.д. Поскольку вы можете иметь в качестве значения одного массива - другой массив PHP, вы без труда сможете эмулировать деревья.
Для задания array в php можно использовать функцию array() или непосредственно задать значения элементам массива. Далее мы рассмотрим разные способы задания массивов в PHP:
Задаем массив при помощи array() в PHP
array ([key] => value,[key1] => value1, ... )
Языковая конструкция array() принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в PHP типа. Числовой ключ массива часто называют индексом. Индексирование массива в PHP начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ искомого элемента. Если ключ массива представляет собой стандартную запись целого числа, то он рассматривается как число, в противном случае – как строка. Поэтому запись $a["1"] равносильна записи $a[1], так же как и $a[" – 1"] равносильно $a[ – 1].
Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено некоторое значение, то оно будет перезаписано. Если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).
Выводим значения первого массива - 43 32 56 12 Выводим значения второго массива - 43 32 12
В данном примере мы задаем 2 массива различными способами, но, несмотря на это, массивы являются полностью идентичными. И вы можете в этом самостоятельно убедиться.
Если использовать в качестве ключа булево значениеTRUE или FALSE, то оно переводится, соответственно, в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее необходимо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок.
Нельзя использовать в качестве ключа массивы и объекты.
Задаем массив при помощи квадратных скобок
Создать массив можно просто записывая в него значения. Как мы уже говорили, значение элемента массива можно получить с помощью квадратных скобок, внутри которых нужно указать его ключ, например, $book["php"]. Если указать новый ключ и новое значение например, $book["new_key"]="new_value", то в массив добавится новый элемент. Если мы не укажем ключ, а только присвоим значение $book[]="new_value", то новый элемент массива будет иметь числовой ключ, на единицу больший максимального существующего. Если массив, в который мы добавляем значения, еще не существует, то он будет создан.
Для того чтобы изменить конкретный элемент массива, нужно просто присвоить ему с его ключом новое значение. Изменить ключ элемента нельзя, можно только удалить элемент (пару ключ/значение) и добавить новую. Чтобы удалить элемент массива необходимо использовать функцию unset().
Заметим, что когда используются пустые квадратные скобки, максимальный числовой ключ ищется среди ключей, существующих в массиве с момента последнего переиндексирования. Переиндексировать массив можно с помощью функции array_values().