Создание массива

Массивы

Массив в PHP является объектом, который ставит в соответствие ключам значения. Ключи должны быть уникальными и им должно соответствовать единственное значение. Такой объект называют отображением (map), словарем (dictionary) или ассоциативным массивом (associative array).

Массив может быть создан с помощью оператора

array([ ключ1 =>] значение1, [ ключ2 =>] значение2, …)

Ключ может быть либо целым числом типа integer (положительным или отрицательным), либо строкой (типа string), а значение может иметь любой тип (включая массивы и объекты), причем и индексы и значения в массиве могут иметь различный тип.

Пример 4.6.16. Создание массива:

$array1 = array("a1" => "First item", 2 => true);

В созданном массиве $array1 значение первого ключа является строкой, а значение второго ключа – целым числом. Значение первого элемента – строка, а значение второго элемента – булевское.

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

Пример 4.6.17. Присваивание значений ключам в массиве по умолчанию:

1. Предложение создания массива

$array2 = array(5 => 0, 6 => 12, 24, "base" => 12, 48);

Создает массив с теми же значениями ключей и элементов, что и предложение

$array2 = array(5 => 0, 6 => 12, 7 => 24,

"base" => 12, 8=> 48);

2. Предложение создания массива

$array3 = array("String 1", "String 2", "String 3");

создает массив с теми же значениями ключей и элементов, что и предложение

$array3 = array(0 => "String 1", 1 => "String 2",

2 => "String 3");

Если при создании массива заданы два элемента с одинаковыми ключами, то элементом массива станет элемент с последним из заданных ключей.

Пример 4.6.18. Двойное определение ключа в массиве:

Для массива $array4, предложение о создании имеет следующий вид:

$array4 = array(0 => 1, 1 => 2, 2 => 3, 1 => 10);

значением элемента с ключом 1 станет число 10.

Для создания массива, в котором элементы можно задавать в цикле, используется функция

range(начальное-значение, конечное-значение [, приращение ])

Значение параметра приращение должно быть числом (по умолчанию значение этого параметра равно 1). Первый элемент массива будет иметь значение начальное-значение и значение ключа, равное 0. Значение второго элемента массива больше значения первого элемента на значение приращение (если конечное-значение больше, чем начальное-значение) или меньше значения первого элемента на значение приращение (если конечное-значение меньше, чем начальное-значение). Аналогичным образом определяются остальные элементы массива, кроме последнего. Последний элемент массива – это элемент, значение которого меньше или равно (если конечное-значение больше, чем начальное-значение) или больше или равно (если конечное-значение меньше, чем начальное-значение) значению параметра конечное-значение. Значения ключей для второго элемента массива равно 1, для третьего – 2 и т.д.

Пример 4.6.19. Создание массива с использованием функции range():

1. Предложение

$array5 = range(0, 5, 2);

создает массив из трех элементов со значениями 0, 2 и 4 и с ключами, равными 0, 1 и 2.

2. Предложение

$array6 = range('z', 'x');

создает массив из трех элементов со значениями 'z', 'y' и 'x' и с ключами, равными 0, 1 и 2.

Функция

compact(параметр-1 [, параметр-2...])

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

Пример 4.6.20. Создание массива с использованием функции compact():

Следующие предложения определяют переменные

$en_word = "blue";

$ru_word_1 = "синий";

$ru_word_2 = "голубой";

$ru_word_array = array("ru_word_1", "ru_word_2");

$blue_item = compact("en_word", "nothing", $ru_word_array);

Массив $blue_item будет содержать следующие элементы (элемент nothing не войдет в массив $blue_item, т.к. он не определен):

en_word => blue

ru_word_1 => синий

ru_word_2 => голубой


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: