Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

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

Массив в PHP представляет собой множество пар вида <ключ>, <значение>. Для определения массива используется конструкция array( [ключ1] => значение1, [ключ2] => значение2, ... ). Значения могут быть разных типов, в том числе представлять из себя другие массивы. В одном массиве допускаются значения разных типов. Ключи в массиве должны быть либо целого, либо строкового типа. Ключи в массиве уникальны, если пытаемся добавить элемент в массив с уже существующим ключом, то предыдущее значение замещается.

Примеры определения массива:

<?php // определяем массив из 3-ех элементов, ключи: 0,1,2 $array_1 = array(0 => "Иванов", 1 => "Петров", 2 => "Сидоров"); /* ключи можно не указывать, в этом случае ключи будут целые числа начиная с 0 */ $array_2 = array("Иванов", "Петров", "Сидоров"); /* можно указать часть ключей, если ключ не указан, то будет выбрано максимальное значение ранее заданного числового ключа в массиве + 1 */ $array_3 = array(0=>"Иванов", "Петров", 2=>"Сидоров"); // $array_1, $array_2, $array_3 - содержат одно и тоже // определяем массив с элементами разных типов $array_4 = array(0=>"Иванов", "Год рождения"=>1980, "Мужчина?"=>true); // двумерный массив $array_5 = array( 0=>array(1,2,3), 1=>array("Иванов", "Петров", "Сидоров") ); // пустой массив (массив без элементов) $array_6 = array(); ?>

Доступ к элементам массива

Для извлечения значения элемента массива используется конструкция <имя массива>[ <ключ> ]. Если элемент с заданным ключом не найден, возвращается значение NULL.

Примеры (используются ранее определенные массивы):

<?php // в $var_1 будет строка "Сидоров" $var_1 = $array_1[2]; // в $var_2 будет значение true $var_2 = $array_4["Мужчина?"];   // в $var_3 будет массив $var_3 = $array_5[1];   // в $var_4 будет строка "Петров"       $var_4 = $var_3[1];            ?> 

Массив можно также создать при помощи конструкции <имя массива>[ <ключ> ] = <значение>. Таким же способом добавляются новые элементы в уже существующий массив.

Пример:

<?php // создается массив $new_array1 с единственным элементом $new_array1[1] = "Строка 1"; $new_array1[0] = 1; // добавили еще элемент /*  если не указали ключ, то будет  выбрано максимальное значение ранее заданного числового ключа  в массиве + 1 */ $new_array1[] = "Строка 2"; ?> 

Для удаления элемента массива используется функция unset.

Пример:

<?php // удаляем элемент, в массиве останется только 2 элемента unset($new_array1[0]); ?>  

Операции работы с массивом

Для массивов определены операции объединения и сравнения (на равенство и на эквивалентность). Операция объединения обозначается знаком +. Результатом объединения двух массивов $arr_1 и $arr_2 будет массив $arr_3, состоящий из элементов массива $arr_1 и $arr_2, причем сначала идут все элементы массива $arr_1, а затем все элементы массива $arr_2. Порядок элементов сохраняется. Если в массиве $arr_2 есть элемент с таким же ключом, как и в $arr_1, то такой элемент в $arr_3 не включается.

Пример:

<?php $arr_1 = array(0 => "Иванов", 1 => "Петров", 2 => "Сидоров"); $arr_2 = array(3 => "Степанов", 4 => "Фёдоров"); /*  результирующий массив $arr_3 =    0 => "Иванов", 1 => "Петров", 2 => "Сидоров", 3 => "Степанов", 4 => "Фёдоров") */ $arr_3 = $arr_1 + $arr_2; $arr_4 = array(2 => "Степанов", 4 => "Фёдоров"); /*  результирующий массив $arr_5 =   (0 => "Иванов", 1 => "Петров", 2 => "Сидоров", 4 => "Фёдоров") */ $arr_5 = $arr_1 + $arr_4; ?> 

При сравнении на равенство массивы $arr_1 и $arr_2 считаются равными, если они имеют одинаковое количество элементов и для любого элемента массива $arr_1 найдется элемент массива $arr_2 с таким же значением и ключом. Массивы $arr_1 и $arr_2 считаются эквивалентными, если они равны и порядок одинаковых элементов в массивах совпадает.

Пример:

<?php $arr_1 = array(0 => "Иванов", 1 => "Петров", 2 => "Сидоров"); $arr_2 = array(1 => "Петров", 0 => "Иванов", 2 => "Сидоров"); // сравниваем массивы на равенство, они должны быть равны if( $arr_1 == $arr_2 ) {   echo "Массивы равны"; } // сравниваем массивы на эквивалентность, они равны // но не эквивалентны, поскольку порядок элементов разный if( $arr_1 === $arr_2 ) {   ; } else {   echo "Массивы не эквивалентны"; } ?>

В PHP имеются полезные встроенные функции работы с массивами. Простейший пример функция count для определения количества элементов массива. В качестве параметра в функцию count передается массив. В силу тривиальности, пример использования функции count не приводится.

Функции работы с массивами рассматриваются позднее в данной теме, поскольку пояснение их использования требует знания синтаксиса пользовательских функций и управляющих конструкций языка.