Введение
Массив – это тип данных, представляющий собой упорядоченный набор однотипных элементов с известным их количеством (размером массива).
Массивы подходят для осуществления многих действий, таких как хранение и изменение целого набора переменных. Массивы бывают одномерные (в виде вектора) и многомерные (в виде матриц). Они могут создаваться самим пользователем, а также могут возвращаться какой-либо функцией в качестве результата её действия.
Функции в программировании – это определённые действия, выполняемые с различными данными (называемыми параметрами, или аргументами функции), которые направлены на какие-либо их преобразования с последующим получением некоторого результата.
Язык программирования PHP предоставляет огромное множество функций для работы с массивами различных типов данных.
Среди них есть специальные функции для работы с базами данных, облегчающие выполнение работы с большими массивами данных, которые возвращаются в результате различных SQL-запросов.
Эти функции всегда доступны, то есть для их использования не требуется установки каких-то дополнительных инструментов, поскольку они являются частью ядра языка PHP.
Функции для работы с массивами на языке PHP
Все такие функции можно условно разделить на несколько категорий. Рассмотрим их подробнее.
К функциям преобразования массивов относятся функции, связанные с:
- Выборкой ключей и значений:
array_keys() - возвращает массив из индексов заданного массива;
array_values() - создаёт новый массив на основе исходного, при условии, что ключи в нём будут заменены последовательно возрастающими числами.
- Зеркальным отображением, обращением и случайным перемешиванием:
array_count_values() - позволяет сформировать массив, индексами которого будут значения исходного массива, а значениями - число повторений соответствующего значения в этом массиве;
array_flip() - преобразует ключи массива в значения, и наоборот;
array_reverse() - производит обращение массива, т.е. его первый элемент становится последним, второй - предпоследним и т.д.;
shuffle() - переставляет элементы массива случайным образом.
- Слиянием, дополнением, вырезкой и вставкой элементов массивов:
array_merge() - позволяет объединять несколько массивов в один;
array_pad() - дополняет массив до нужного количества элементов заданными значениями;
array_slice() - вырезает из массива подмассив заданной длины, начиная с указанного элемента;
array_splice() - функция array_splice() аналогична функции array_slice(), но принимает четвертый параметр, который может представлять собой массив любой длины, предназначенный для вставки во входной массив.
- Преобразованиями в стеках и очередях:
array_pop - возвращает последний элемент массива, одновременно удаляя элемент из массива;
array_push - добавляет определённые элементы в конец массива.
- Сортировкой массивов:
asort() - сортирует массив по возрастанию его значений, сохраняя индексы неизменными;
arsort() - сортирует массив по убыванию его значений, сохраняя индексы неизменными;
ksort() - сортирует массив по возрастанию его индексов;
krsort() - сортирует массив по убыванию его индексов;
sort() - сортирует массив по возрастанию значений его элементов с перенумерацией его индексов;
rsort() - выполняет о же, что и sort(), но сортирует в порядке по убыванию;
uasort() - сортирует массив с использованием функций сравнения, заданных пользователем, и поддержкой индексации;
uksort() - сортирует массив по ключам, с использованием функций сравнения, определенных пользователем;
usort() - сортирует массив с использованием некоторой функции сравнения элементов массива;
array_multisort() - выполняет сортировку многомерного массива или нескольких одномерных массивов;
natcasesort() - сортирует массив естественным образом без учета регистра массива;
natsort() - cортирует массив естественным образом с учётом регистра символов.
- Поиском в массивах:
array_search() - осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае его нахождения;
array_key_exists - проверяет наличие заданного индекса в массиве.
- Преобразованиями нескольких массивов:
array_diff() - определение исключительного пересечения массивов;
array_merge_recursive() - рекурсивное слияние сложных массивов;
array_diff_key() - вычислить расхождение в массивах, сравнивая ключи;
array_diff_ukey() - вычислить расхождение в массивах, используя функцию обратного вызова для сравнения ключей;
array_intersect_key() - вычислить пересечение массивов, сравнивая ключи.
- Взаимодействием переменных и массивов:
list() - заносит элементы массива в переменные;
compact() - упаковывает в массив переменные из текущего контекста;
extract() - импорт элементов массива в переменные.
Другие функции:
sizeof() - возвращает число элементов массива;
count() - возвращает число элементов в массиве или объекте;
current() - возвращает значение текущего элемента массива;
each() - возвращает текущие индекс и значение элемента массива и продвигает указатели на следующий элемент;
array_sum() - возвращает сумму всех элементов массива;
array_rand() - производит случайную выборку индексов массива;
array_chunk() - разбивает массив на несколько меньших массивов заданного размера;
array_combine() - формируетт массив из двух заданных массивов - массива индексов элементов и массива значений;
array_fill() - заполняет массив заданным значением;
array_intersect() -формирует массив из элементов, которые присутствуют во всех заданных массивах;
array_reduce() - осуществляет последовательное применение заданной функции к элементам массива, формируя итоговое значение;
array_shift() - возвращает первый элемент массива, одновременно удаляя его из массива с перенумерацией числовых индексов;
array_unshift() - добавляет один или несколько элементов в начало массива с перенумерацией числовых индексов;
array_sum() - вычисляет сумму всех элементов массива;
array_unique() - удаляет дублирующиеся значения из массива;
array_walk() - вызывает заданную функцию последовательно для каждого элемента массива;
array() - формирует массив из заданных значений или пар индекс - значение;
in_array() - проверяет, присутствует ли заданное значение в массиве;
key() - возвращает индекс текущего элемента массива;
pos() - синоним функции current;
reset() - устанавливает внутренний указатель на первый элемент массива.