Основные примеры работы с массивами PHP. Создание, наполнение, извлечение удаление значений.
Создать массив и заполнить его значениями
$array = array(
'яблоко',
'апельсин',
'виноград'
);
// или
$array = array();
$array[] = 'яблоко';
$array[] = 'апельсин';
$array[] = 'виноград';
Можно применить функцию array_fill($start, $size, $value), которая создаст массив с количеством $size элементов со значением $value, начиная с индекса $start.
Данный пример создает массив с тремя элементам «текст», ключи которых будут начинаться с нуля.
$array = array_fill(0, 3, 'текст');
print_r($array);
Результат:
Array
(
[0] => текст
[1] => текст
[2] => текст
)
Еще вариант – функция explode($delimiter, $string), которая из строки $string создаст массив используя разделитель $delimiter, в данном примере запятая.
$array = explode(',', 'текст 1,текст 2,текст 3');
print_r($array);
Результат:
Array
(
[0] => текст 1
[1] => текст 2
[2] => текст 3
)
echo count($array);
// или
echo sizeof($array);
Если массив ассоциативный (многомерный), то count() вернёт количество элементов только первого уровня. Чтобы получит количество всех элементов нужно использовать константу COUNT_RECURSIVE.
$array = array(
array(
'яблоко',
'апельсин',
'виноград'
),
array(
'яблоко',
'апельсин',
'виноград'
)
);
echo count($array); // вернет 2
echo count($array, COUNT_RECURSIVE); // вернет 8
Добавить значение в начало массива
array_unshift($array, $value) – добавляет одно или несколько элементов в начало массива.
$array = array(
'яблоко',
'апельсин',
'виноград'
);
array_unshift($array, 'банан');
print_r($array);
Результат:
Array
(
[0] => банан
[1] => яблоко
[2] => апельсин
[3] => виноград
)
Добавить значение в конец массива
array_push($array, $value) – добавляет значение в конец массива.
$array = array(
'яблоко',
'апельсин',
'виноград'
);
array_push($array, 'банан');
// или
$array[] = 'банан';
print_r($array);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
[2] => виноград
[3] => банан
[4] => банан
)
Получить первый ключ массива
Функция array_key_first($array) — получает первый ключ массива. Появилась в версии PHP 7.3, для более ранних версий:
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return null;
}
}
$array = array(
1 => 'яблоко',
3 => 'апельсин',
5 => 'виноград'
);
echo array_key_first($array); // 1
Получить последний ключ массива
Функция array_key_last($array) — получает последний ключ массива. Появилась в версии PHP 7.3, для более ранних версий:
if (!function_exists('array_key_last')) {
function array_key_last($array) {
if (!is_array($array) || empty($array)) {
return NULL;
}
return array_keys($array)[count($array) - 1];
}
}
$array = array(
1 => 'яблоко',
3 => 'апельсин',
5 => 'виноград'
);
echo array_key_last($array); // 5
Переопределить ключи массива
К примеру, после удаления элемента массива сбивается нумерация ключей и нужно назначить новую нумерацию:$array = array(
1 => 'яблоко',
3 => 'апельсин',
5 => 'виноград'
);
$new = array_values($array);
print_r($new);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
[2] => апельсин
)
Начало нумерации ключей с единицы:
$array = array(
1 => 'яблоко',
3 => 'апельсин',
5 => 'виноград'
);
$new = array_combine(range(1, count($array)), $array);
print_r($new);
Результат:
Array
(
[1] => яблоко
[2] => апельсин
[3] => апельсин
)
Получить первый элемент массива
$array = array(
'яблоко',
'апельсин',
'виноград'
);
reset($array);
$first = current($array); // яблоко
Получить последний элемент массива
$array = array(
'яблоко',
'апельсин',
'виноград'
);
$end = end($array); // виноград
Получить часть (срез) массива
array_slice($array, $offset, $length) возвращает часть массива начиная с индекса $offset длиной $length.
- Если
$offsetотрицательный, то отчет начинается с конца массива. $lengthможно не указывать, тогда функция вернет все элементы до конца массива начиная с индекса$offset.
$array = array(
'яблоко',
'апельсин',
'виноград'
);
$new = array_slice($array, 0, 2);
print_r($new);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
)
Извлечь первый элемент массива
array_shift($array) – извлекает первый элемент из массива $array и возвращает его значение.
$array = array(
'яблоко',
'апельсин',
'виноград'
);
$first = array_shift($array); // яблоко
print_r($array);
Результат:
Array
(
[0] => апельсин
[1] => виноград
)
Извлечь последний элемент массива
array_pop($array) – извлекает последний элемент из массива $array и возвращает его значение.
$array = array(
'яблоко',
'апельсин',
'виноград'
);
$end = array_pop($array); // виноград
print_r($array);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
)
Извлечь часть массива
Чтобы извлечь из массива часть можно применить функции array_slice() и array_diff().
$array = array(
'яблоко',
'апельсин',
'виноград'
);
$new = array_slice($array, 0, 2);
$array = array_diff($array, $new);
print_r($new);
print_r($array);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
)
Array
(
[2] => виноград
)
Выбрать все значения из массива
array_values($array) – создает новый массив из исходного $array игнорируя его ключи.
$array = array(
'key 1' => 'яблоко',
'key 2' => 'апельсин',
'key 3' => 'виноград'
);
$new = array_values($array);
print_r($new);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
[2] => виноград
)
Выбрать все ключи массива
array_keys($array) – создает новый массив состоящий из ключей исходного массива.
$array = array(
'key 1' => 'яблоко',
'key 2' => 'апельсин',
'key 3' => 'виноград'
);
$new = array_keys($array);
print_r($new);
Результат:
Array
(
[0] => key 1
[1] => key 2
[2] => key 3
)
Выбирать случайные значения из массива
array_rand($array, $count) возвращает случайным образом один или несколько ключей из массива $array. Если $count больше единицы, то результат будет в виде массива.
$array = array(
3 => 'яблоко',
1 => 'апельсин',
5 => 'виноград'
);
echo $array[array_rand($array)];
Проверить, есть ли значение в массиве
$array = array(
'яблоко',
'апельсин',
'виноград'
);
if (in_array('апельсин', $array)) {
echo 'Найдено значение "апельсин"';
}
// или
if (array_search('апельсин', $array) !== false) {
echo 'Найдено значение "апельсин"';
}
Проверить, есть ли ключ в массиве
$array = array(
1 => 'яблоко',
2 => 'апельсин',
3 => 'виноград'
);
if (array_key_exists(2, $array)) {
echo 'Найден ключ 2';
}
// или
if (isset($array[2])) {
echo 'Найден ключ 2';
}
unset() – удаляет переменные и элементы массива по ключу.
В первом примере элемент удаляется по ключу, во втором по значению:
$array = array(
'яблоко',
'апельсин',
'виноград'
);
// Удаление по ключу
unset($array[1]);
// Удаление по значению
unset($array[array_search('апельсин', $array)]);
print_r($array);
Результат:
Array
(
[0] => яблоко
[2] => виноград
)
Удаление пустых значений
В PHP нет отдельной функции для удаления пустых значений в массиве, поэтому применяют array_diff() которая возвращает расхождения массивов.
$array = array(
'яблоко',
'',
'виноград'
);
$array = array_diff($array, array(''));
print_r($array);
Результат:
Array
(
[0] => яблоко
[2] => виноград
)
Если требуется удалить значения включая 0, null, array() и т.д. можно применить следующее:
$array = array_diff($array, array('', ' ', null, 0, array()));
Удалить повторяющиеся значения массива
$array = array(
'яблоко',
'яблоко',
'апельсин',
'виноград'
);
$array = array_unique($array);
print_r($array);
Результат:
Array
(
[0] => яблоко
[2] => апельсин
[3] => виноград
)
Объединить два и более массивов поможет функция array_merge($array_1, $array_2, ...).
$array_1 = array(
'яблоко',
'апельсин',
'виноград'
);
$array_2 = array(
'помидор',
'огурец',
);
$new = array_merge($array_1, $array_2);
print_r($new);
Результат:
Array
(
[0] => яблоко
[1] => апельсин
[2] => виноград
[3] => помидор
[4] => огурец
)
array_chunk($array, $size) – создает новый многомерный массив из исходного, деля его на равные части.
В данном примере указано $size = 3, поэтому получается четыре подмассива в каждом из которых по три элемента.
$array = array(
'январь',
'февраль',
'март',
'апрель',
'май',
'июнь',
'июль',
'август',
'сентябрь',
'ноябрь',
'декабрь',
);
$array = array_chunk($array, 3);
print_r($array);
Результат:
Array
(
[0] => Array
(
[0] => январь
[1] => февраль
[2] => март
)
[1] => Array
(
[0] => апрель
[1] => май
[2] => июнь
)
[2] => Array
(
[0] => июль
[1] => август
[2] => сентябрь
)
[3] => Array
(
[0] => ноябрь
[1] => декабрь
)
)
Если требуется разделить массив на определенное количество частей поможет следующий прием:
$array = array(
'январь',
'февраль',
'март',
'апрель',
'май',
'июнь',
'июль',
'август',
'сентябрь',
'ноябрь',
'декабрь',
);
$array = array_chunk($array, ceil(count($array) / 3));
print_r($array);
Результат:
Array
(
[0] => Array
(
[0] => январь
[1] => февраль
[2] => март
[3] => апрель
)
[1] => Array
(
[0] => май
[1] => июнь
[2] => июль
[3] => август
)
[2] => Array
(
[0] => сентябрь
[1] => ноябрь
[2] => декабрь
)
)






Везде и повсеместно...
Вот вам простой пример, абсолютно то же самое что и в первом примере.