Массивы в PHP — это нумерованный набор переменных одного типа. Переменная в массиве называется элементом массива,а ее позиция в массиве задается индексом. Индексация элементов массива начинается с 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()
Comments ( 0 )