- Работа с массивами PHP – создание, наполнение, удаление
- Создание массивов
- Создать массив и заполнить его значениями
- Результат:
- Результат:
- Узнать количество элементов в массиве
- Добавление элементов в массив
- Добавить значение в начало массива
- Результат:
- Добавить значение в конец массива
- Результат:
- Работа с ключами массива
- Поучить первый ключ массива
- Поучить последний ключ массива
- Переопределить ключи массива
- Результат:
- Результат:
- Получение элементов из массива
- Получить первый элемент массива
- Получить последний элемент массива
- Получить часть (срез) массива
- Результат:
- Извлечь первый элемент массива
- Результат:
- Извлечь последний элемент массива
- Результат:
- Извлечь часть массива
- Результат:
- Выбрать все значения из массива
- Результат:
- Выбрать все ключи массива
- Результат:
- Выбирать случайные значения из массива
- Поиск и проверка элементов в массиве
- Проверить, есть ли значение в массиве
- Проверить, есть ли ключ в массиве
- Удаление элементов из массива
- Результат:
- Удаление пустых значений
- Результат:
- Удалить повторяющиеся значения массива
- Результат:
- Объединение массивов
- Результат:
- Разделить массив на части
- Результат:
- Результат:
- Удалить значение из массива на PHP
- Удалить значение из массива по ключу
- Удалить элемент массива по значению
Работа с массивами PHP – создание, наполнение, удаление
Основные примеры работы с массивами 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)
Проверить, есть ли ключ в массиве
$array = array( 1 => 'яблоко', 2 => 'апельсин', 3 => 'виноград' ); if (array_key_exists(2, $array)) < echo 'Найден ключ 2'; >// или if (isset($array[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] => декабрь ) )
Удалить значение из массива на PHP
Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо удалить элемент массива именно по значению, то тут возникают небольшие сложности. Вроде бы банальная задача, но придется воспользоваться небольшой хитростью. В этой статье рассмотрим как удалить элемент массива на PHP и по значению и по ключу.
Удалить значение из массива по ключу
Тут все очень просто. Нам понадобится PHP функция unset() , которая удаляет переменные. С её помощью можно так же удалить элемент массива по ключу. В приведенном ниже примере мы удаляем элемент с ключом name из массива $array :
'Иван', 'lastname' => 'Иванов', 'site' => 'https://it-blog.ru'); unset($array['name']); ?>
Как видите все достаточно просто, но как удалить элемент из массива по его значению, ведь функция unset() может найти элемент только по его ключу. Об этом вы узнаете далее.
Нужен ремонт телефона? Ремонт телефонов в СПб любого уровня сложности. Качественно, срочно и недорого.
Удалить элемент массива по значению
Для удаления элемента массива по значению мы так же будем использовать функцию unset() , которая удаляет элементы по ключу, но прежде мы найдем элемент по значению. В этом нам поможет ещё одна функция array_search() , которая ищет элемент по значению и возвращает его ключ. Далее по найденному ключу мы и удалим нужный элемент из массива.
'Иван', 'lastname' => 'Иванов', 'site' => 'https://it-blog.ru'); if(($key = array_search('Иван', $array)) !== false) < unset($array[$key]); >?>
Как видите удалить элемент массива по значению довольно просто, нужно просто немного поразмыслить. Надеюсь этот материал будет вам полезен и возможно пригодится в повседневной работе.
Подборка бесплатных IT-курсов и вебинаров от Skillbox.
Бесплатные IT-курсы, нужно только пройти онлайн-тест здесь
Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой: