На этом шаге мы рассмотрим различные способы инициализации масивов.
Для инициализации или создания массивов в РНР предлагается два способа:
Присвоение значений. Для того чтобы создать массив, можно просто присвоить значение его элементу подобно тому, как мы делали это с обычными переменными:
$closets[3] = "Майка";
В результате выполнения этой строки если массив $closets (шкафчики) еще не существует, то он будет создан. Его первый и пока единственный элемент будет содержать строку Майка. Ключом в данном случае будет число 3. Ключ может и отсутствовать. Пример:
$closets[] = "Майка";
Здесь в квадратных скобках мы ничего не поставили. В этом случае если такого массива еще не существует, то по умолчанию ключом первого элемента будет число 0. Эта запись будет эквивалентна следующей:
$closets[0] = "Майка";
Если в качестве ключа используется строка, тогда инициализация массива будет выглядеть следующим образом:
$closets["Петров"] = "Майка";
В этом случае мы создали массив с одним элементом, ключом которого является строка "Петров".
В PHP существует особенность, связанная с использованием пустого ключа ([]). Например:
$closets[] = "Майка"; $closets[] = "Кроссовки"; $closets[] = "Шорты";
Первой строкой создается массив с одним элементом, ключом которого является число 0. При выполнении следующей строки РНР добавит еще один элемент, ключ которого на единицу больше, то есть 1. Другими словами все это эквивалентно следующему:
$closets[0] = "Майка"; $closets[1] = "Кроссовки"; $closets[2] = "Шорты";
Общий механизм подсчета очередного ключа при использовании пустых квадратных скобок нужно отдельно пояснить. Допустим, массив уже существует, тогда осуществляется поиск максимального числового ключа и именно к нему прибавляется единица. Пример:
$closets[10] = "Майка";
$closets[1] = "Кроссовки";
$closets["Петров"] = "Шорты";
$closets[] = "Брюки"; // эквивалентно $closets[11] = "Брюки"
В этом случае четвертым элементом будет строка "Брюки", а ключ будет равен 11, так как максимальное значение ключа до этого было равно 10. Если числовые ключи отсутствуют, то по умолчанию он будет равен 0, Пример:
$closets["Петров"] = "Шорты";
$closets[] = "Брюки"; // эквивалентно $closets[0] = "Брюки";
Исключение из этого правила может возникнуть при использовании функции unset(). Как эта функция применяется к массивам, мы рассмотрим позже.
Функция array(). Другим способом инициализации массивов является функция array().
Общий вид этой функции следующий:
Рис.1. Общий вид функции array()
Например:
$closets = array(1 => "Майка", 2 => "Кроссовки", 3 => "Шорты");
Функция array() в качестве входных параметров принимает пары ключ-значение и возвращает требуемый массив. Ключ и значение разделяются оператором =>. Пары разделяются запятыми. В приведенном примере создается массив, состоящий из трех элементов с ключами 1, 2 и 3 и значениями соответственно Майка, Кроссовки, Шорты.
Ключи можно не указывать, тогда их значение будет определяться по умолчанию. Например:
$closets = array("Майка", "Кроссовки", "Шорты");
В этом случае индексация будет начинаться с 0, поэтому рассматриваемая строчка будет эквивалентна этой:
$closets = array(0 => "Майка", 1 => "Кроссовки", 2 => "Шорты");
Правила определения ключей по умолчанию здесь такие же, что и рассмотренные раньше. И не стоит забывать, что в качестве ключей могут использоваться и строки:
$closets = array("Петров" => "Майка", "Иванов" => "Кроссовки", "Сидоров" => "Шорты");
На следующем шаге мы рассмотрим вывод масивов.