Разработка магазинов с гарантией попадания в ТОП поисковых систем

Узнать подробнее

Тип Array в PHP

Использование массивов (тип 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].

<?php
$a = array (1 =>
«значение 1 «,
«ss» => true);
echo $a[«ss»].»<br>»;
echo $a[1];
?>
1
значение 1

Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено некоторое значение, то оно будет перезаписано. Если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).

<?php
$arr = array(5 => 43, 32, 56, «b» => 12);
$arr1 = array(5 => 43, 6 => 32,
7 => 56, «b» => 12);
echo «Выводим значения первого массива — «.$arr[5].» «.$arr[6].» «.$arr[7].» «.$arr[b].»<br> «;
echo «Выводим значения второго массива — «.$arr1[5].» «.$arr1[6].» «.$ar1r[7].» «.$arr1[b].»<br> «;
?>
Выводим значения первого массива — 43 32 56 12
Выводим значения второго массива — 43 32 12

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

Если использовать в качестве ключа булево значение TRUE или FALSE, то оно переводится, соответственно, в единицу и ноль типа integer. Если использовать NULL, то вместо ключа получим пустую строку. Можно использовать и саму пустую строку в качестве ключа, при этом ее необходимо брать в кавычки. Так что это не то же самое, что использование пустых квадратных скобок.

Нельзя использовать в качестве ключа массивы и объекты.

Задаем массив при помощи квадратных скобок

Создать массив можно просто записывая в него значения. Как мы уже говорили, значение элемента массива можно получить с помощью квадратных скобок, внутри которых нужно указать его ключ, например, $book[«php»]. Если указать новый ключ и новое значение например, $book[«new_key»]=»new_value», то в массив добавится новый элемент. Если мы не укажем ключ, а только присвоим значение $book[]=»new_value», то новый элемент массива будет иметь числовой ключ, на единицу больший максимального существующего. Если массив, в который мы добавляем значения, еще не существует, то он будет создан.

<?
$arr[«key»]= value;
echo $arr[key].»<br>»;
$arr[] = value1;
echo $arr[0];
?>
value

Для того чтобы изменить конкретный элемент массива, нужно просто присвоить ему с его ключом новое значение. Изменить ключ элемента нельзя, можно только удалить элемент (пару ключ/значение) и добавить новую. Чтобы удалить элемент массива необходимо использовать функцию unset().

<?php
echo $arr[0].»<br>»;
unset($arr[0]);
echo $arr[0].»<br>»;
?>

Заметим, что когда используются пустые квадратные скобки, максимальный числовой ключ ищется среди ключей, существующих в массиве с момента последнего переиндексирования. Переиндексировать массив можно с помощью функцииarray_values().