Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мова РНР.Питання до заліку.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

3. Використання масивів у php. Способи створення масиву. Індексні масиви.Асоціативні масиви Массивы

На самом деле массив в PHP - это упорядоченное отображение, которое устанавливает соответствие между значением и ключом. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хэш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стэк, очередь и, возможно, что-то еще. Так как значением массива может быть другой массив PHP, можно также создавать деревья и многомерные массивы.

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

Синтаксис Определение при помощи array()

Массив может быть создан языковой конструкцией array(). В качестве параметров она принимает любое количество разделенных запятыми пар key => value (ключ => значение).

array( key => value

, ...

)

// key может быть integer или string

// value может быть любым значением любого типа

<?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; // bar echo $arr[12];    // 1 ?>

key может быть либо integer, либо string. Если ключ - это стандартное представление integer, он так и будет интерпретироваться (т.е. "8" будет восприниматься как 8, тогда как "08" будет интерпретироваться как "08"). Float в key будет обрезан до integer. В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы.

Значение может быть любого имеющегося в PHP типа.

Замечание:

Попытка доступа к неопределенному ключу в массиве - это то же самое, что и попытка доступа к любой другой неопределенной переменной: будет вызвана ошибка уровня E_NOTICE, и результат будет NULL.

<?php $arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42)); echo $arr["somearray"][6];    // 5 echo $arr["somearray"][13];   // 9 echo $arr["somearray"]["a"];  // 42 ?>

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

<?php // Этот массив эквивалентен ... array(5 => 43, 32, 56, "b" => 12); // ...этому массиву array(5 => 43, 6 => 32, 7 => 56, "b" => 12); ?>

Внимание

До PHP 4.3.0, добавление элемента к массиву, в котором текущий максимальный являлся отрицательным, создавало новый ключ так, как описано выше. Начиная с версии PHP 4.3.0, новый ключ будет 0.

Используя TRUE как key, вы получите ключ 1 типа integer. Используя в FALSE как key, вы получите ключ 0 типа integer. Используя в качестве ключа NULL, вы получите пустую строку. Использование в качестве ключа пустой строки создаст (или перезапишет) ключ с пустой строкой и его значение; это не то же самое, что использование пустых квадратных скобок.

Массивы и объекты не могут быть использованы в качестве ключей. Это вызовет предупреждение: Illegal offset type ('Недопустимый тип смещения').