Массив - это нумерованный набор переменных одного типа. Переменная в массиве называется элементом массива,а ее позиция в массиве задается индексом. Индексация элементов массива начинается с 0, а не с 1. Это следует помнить. Общее количество элементов массива называется размером массива. Массивы, индексами которых являются числа, называются списками.
Рассмотри функции, имеющиеся в PHP, по инициализации массива, получения и изменения элементов массива, определения количества элементов в массиве. Также многомерные массивы, ассоциативные массивы. Фукции по их слиянию, перебора элементов, добавления и удаления элементов массива, переворачивания и перемещения и сортировки и еще множество полезных функций.
Инициализация массива
Инициализация массива осуществляется двумя способами.
1) Поэлементно
$mass[0] = "Ноль";
$mass[1] = "Один";
$mass[2] = "Два";
$mass[3] = "Три";
Кроме того, можно не указывать индекс. PHP автоматически присвоит элементу индекс последнего элемента плус один, т.е. добавит элемент в конец массива.
$mass[] = "Ноль";
$mass[] = "Один";
$mass[] = "Два";
$mass[] = "Три";
2) Указав все элементы массива сразу
$mass = array ("Ноль", "Один", "Два", "Три");
Получение и изменения элемента массива. Определение количества элементов массива
Обращение к элементам массива осуществляется с помощью квадратных скобок, в которых указывается индекс элемента. Индексация элементов массива начинается с нуля.
$var = $mass [1]; //Переменной $var будет присвоено значение "Один"
Или с момощью функции list()
$mass[] = "Ноль";
$mass[] = "Один";
$mass[] = "Два";
$mass[] = "Три";
list ($var1, $var2, $var3, $var4) = mass;
echo $var2; //переменной $var2 будет присвоено значение "Один"
При желании можно добавить новый элемент массива или изменить значение существующего.
$mass[] = "Четыре";
$mass[0] = "Нуль";
Получить количество элементов массива позволяет функция count()
$mass[] = "Один";
$mass[] = "Два";
$mass[] = "Три";
echo count ($mass); //Выведет 3
Многомерные массивы
Любому элементу массива можно присвоить другой массив.
$mass = array (1, 2, 3, 4);
В этом случае получить значение массива можно, указав два индекса
$var = $mass [0][2]; //Переменной var будет присвоено значение 3
Ассоциативные массивы
Основным отличием ассоциативных массивов от списков является возможность обращения к элементу массива не по числовому индексу, а по индексу, состоящему из строки. Индексы ассоциативного массива называются ключами.
$mass ["Один"] = 1;
$mass ["Два"] = 2;
$mass["Три"] = 3;
echo $mass ["Один"]; //Выведет число 1
Кроме перечисления, для инициативных массивов, используется инструкция array().
$mass = array ("Один" => 1, "Два" =>, "Три" => 3);
echo $mass["Один"]; //выведет число 1
Функции array_keys() и array_values() позволяют получить все ключи и все значение ассоциативного массива соответственно.
Слияние массивов
Для слияния двух ассоциативных массивов используется оператор +.
$mass ["Один"] = 1;
$mass ["Два"] = 2;
$mass["Три"] = 3;
$mass2["Четыре"] = 4;
$mass3 = $mass + $mass2;
В этом случае массив $mass3 будет содержать все элементы массивов $mass и $mass2
Для слияния двух списков оператор + не подходит. В этом случае используется функция array_merge(, )
Перебор элементов массива
Для перебора массивов применяются три цикла for, foreach и while. При этом пользуются следующими функциями:
reset() - устанавливает указатель на первый элемент массива
next() - перемещает указатель на один элемент массива вперед
key() - возвращаяет ключ текущего элемента массива
end() - устанавливает указатель на последний элемент массива
prev() - перемещает указатель на один элемент массива назад
Добавление и удаление элементов массива
Для добавления и удаления элементов массива используются следующие функции:
array_unshift (, ); //добавляет элементы в начало массива
[]; //добавляет элементы в конец массив
array_push(, ); //добавляет элементы в конец массива
array_shift (); //удаляет первый элемент массива и возвращает его
array_pop (); //Удаляет последний элемент массива и возвращает его
array_unique (); //возвращает ассоциативный массив, состоящий из уникального значений, указанного ассоциированного массива
Переворачивание и перемешивание массива
Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно исходного массива
Функция shuffle() перемешивает массив. Элементы массива будут расположены в случайном порядке.
Сортировка массива. Создание пользовательской сортировки
Функция sort() позволяет отсортировать список в алфавитном порядке, а функция rsort() - в обратном порядке. Для сортировки ассоциированных массивов не применяется, т.к. разрывает связь ключа со значением.
Отсортировать ассоциированный массив можно или по ключам или по значениям. Для этого используются следующие функции:
asort() - сортировка по значением в алфавитном порядке
arsort() - сортировка по значением в обратном порядке
ksort() - сортировка по ключам в алфавитном порядке
rksort() - портировка по ключам в обратном порядке
Если нужно изменить порядок стандартной сортировки, можно задать свою сортировку с помощью следующих функций:
usort() - для пользовательской сортировки списков
uksort() - для пользовательской сортировки ассоциированных массивов по ключам
uasort() - для пользоватльской сортировки ассоциированных массивов по значениям
Функции принимают две переменные и должны возвращать:
1 - если первый больше второго
-1 - если второй больше первого
0 - если элементы равны.
Получение часть массива
Для получения части массива используются функции array_slice(). Функция имеет следующий формат:
array_slice (, , []);
- исходный массив
- количество элементов от начала массива, которые надо пропустить
- количество элементов, которое нужно получить из исходного массива. Если параметр опущен, то элементы выбираются до конца массива.
Преобразование переменных в массив
Функция compact() позволяет преобразовывать переменные в ассоциированный массив. Ключами становятся имена переменных, а значениями - значения переменных.
Преобразование массива в переменные
Функция extract() создает переменные с именами, соответствующими именам ключей, и значениями, соответствующими значениям элемента ассоциированного массива. Функция имеет следующий формат:
extract (<массив>, [<способ>], [<префикс>]);
- исходный ассоциированный массив
- способ обработки конфликтных ситуаций. Может принимать следующие значения:
EXTR_OVERWRITE - если переменная существует, то ее значение перезаписывается (значение по умолчанию)
EXTR_SKIP - если переменная существует, то элемент массива пропускается
EXTR_PREFIX_SAME - если переменная существует, то перед именем переменной будет добавлен префикс, указанный в параметре
EXTR_PREFIX_ALL - перед именем всех переменных будет добавлен префикс, указанный в параметре
EXTR_IF_EXISTS - извлекает значения только тех переменных, которые уже существуют
EXTR_REFS - извлекает переменные как ссылки
Изменение значений элементов массива
Функция array_walk() позволяет использовать самостоятельно созданные функции
Заполнение массива числами
Создать массив, состоящий из диапазона чисел можно с помощью функции range(), имеющей следующий формат:
range (<Начало диапазона>, <Конец диапазона>);
Преобразование массива в строку
implode(<Разделитель>, <массив>); //преобразует массив в строку. Элементы добавляются через указанный разделитель
join (); // аналогична implode()
serialize (); //позволяет преобразовывать любой массив в строку специального формата
unserialize (); //используется для восстановления массива из строки, преобразованной с помощью функции serialize()