Перейти к основному содержимому

PHP: удаление элементов массива

В PHP есть несколько функций для удаления элементов из массива, и каждая подходит для своей ситуации:

  • array_splice() — удаляет ряд элементов по начальной позиции и длине
  • unset() — удаляет элемент, хранящийся под определённым ключом
  • array_diff() — отфильтровывает элементы из ассоциативного массива
  • array_pop() — удаляет последний элемент
  • array_shift() — удаляет первый элемент

Функция PHP array_splice()

array_splice() нужно знать две вещи: индекс, с которого начать, и количество удаляемых элементов.

После удаления элементов PHP перенумеровывает оставшиеся, так что индексы снова идут с 0 без пропусков.

Удаление одного элемента с помощью array_splice()

Удалите один элемент с индексом 1 — второй автомобиль:

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью array_splice() удаляет второй элемент и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

Удаление нескольких элементов массива

Удаление нескольких элементов с помощью array_splice() зависит от параметра длины, который определяет, сколько элементов будет удалено.

Удаление нескольких элементов с помощью array_splice()

Удалите 2 элемента, начиная с индекса 1 (второй элемент):

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью array_splice() удаляет 2 элемента, начиная с индекса 1, и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

Функция PHP unset()

unset() — ещё один способ удалить элементы, существующие в массиве.

Примечание: В отличие от array_splice(), эта функция не меняет нумерацию. Если удалить элемент с индексом 1, остальные останутся на индексах 0, 2, 3 и так далее, и в индексах появится пропуск.

Удаление одного элемента с помощью unset()

Удалите второй элемент и обратите внимание на пропуск в выводе:

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью unset() удаляет второй элемент и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

Удаление нескольких элементов массива с помощью unset()

Поскольку unset() принимает сколько угодно аргументов, один вызов может удалить несколько элементов:

Удаление нескольких элементов с помощью unset()

Удалите вместе элементы с индексами 0 и 1:

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью unset() удаляет первый и второй элементы и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

Удаление элемента из ассоциативного массива

unset() работает и с ассоциативными массивами.

Просто передайте ключ элемента, который нужно удалить.

Удаление элемента ассоциативного массива с помощью unset()

Удалите элемент «model»:

Prompt
Напишите PHP-скрипт, который создаёт ассоциативный массив с "brand" => "Ford", "model" => "Mustang", "year" => 1964, затем с помощью unset() удаляет ключ "model" и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

Функция PHP array_diff()

Ещё один вариант для ассоциативных массивов — array_diff().

Эта функция не изменяет исходный массив и возвращает новый, в котором нет перечисленных вами элементов.

Примечание: Здесь вы перечисляете значения, а не ключи.

Удаление элементов с помощью array_diff()

Создайте новый массив без «Mustang» и «1964»:

Prompt
Напишите PHP-скрипт, который создаёт ассоциативный массив с "brand" => "Ford", "model" => "Mustang", "year" => 1964, затем с помощью array_diff() создаёт новый массив без "Mustang" и 1964 и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

PHP array_pop() - удаление последнего элемента массива

Чтобы удалить последний элемент массива, вызовите array_pop().

Удаление последнего элемента с помощью array_pop()

Удалите «Toyota», последний автомобиль:

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью array_pop() удаляет последний элемент и выводит результат с помощью var_dump().
Вывод: PHP-скрипт

PHP array_shift() - удаление первого элемента массива

Чтобы удалить самый первый элемент массива, вызовите array_shift().

Удаление первого элемента с помощью array_shift()

Удалите «Volvo», первый автомобиль:

Prompt
Напишите PHP-скрипт, который создаёт массив с "Volvo", "BMW", "Toyota", затем с помощью array_shift() удаляет первый элемент и выводит результат с помощью var_dump().
Вывод: PHP-скрипт