Our Blog

Массивы в PHP

Массивы в 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 )
    -->