PHP: удаление элементов массива
В PHP есть несколько функций для удаления элементов из массива, и каждая подходит для своей ситуации:
array_splice()— удаляет ряд элементов по начальной позиции и длинеunset()— удаляет элемент, хранящийся под определённым ключомarray_diff()— отфильтровывает элементы из ассоциативного массиваarray_pop()— удаляет последний элементarray_shift()— удаляет первый элемент
Функция PHP array_splice()
array_splice() нужно знать две вещи: индекс, с которого начать, и количество удаляемых элементов.
После удаления элементов PHP перенумеровывает оставшиеся, так что индексы снова идут с 0 без пропусков.
Удаление одного элемента с помощью array_splice()
Удалите один элемент с индексом 1 — второй автомобиль:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
array_splice($cars, 1, 1);
var_dump($cars);
?>
Удаление нескольких элементов массива
Удаление нескольких элементов с помощью array_splice() зависит от параметра длины, который определяет, сколько элементов будет удалено.
Удаление нескольких элементов с помощью array_splice()
Удалите 2 элемента, начиная с индекса 1 (второй элемент):
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
array_splice($cars, 1, 2);
var_dump($cars);
?>
Функция PHP unset()
unset() — ещё один способ удалить элементы, существующие в массиве.
Примечание: В отличие от array_splice(), эта функция не меняет нумерацию. Если удалить элемент с индексом 1, остальные останутся на индексах 0, 2, 3 и так далее, и в индексах появится пропуск.
Удаление одного элемента с помощью unset()
Удалите второй элемент и обратите внимание на пропуск в выводе:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
unset($cars[1]);
var_dump($cars);
?>
Удаление нескольких элементов массива с помощью unset()
Поскольку unset() принимает сколько угодно аргументов, один вызов может удалить несколько элементов:
Удаление нескольких элементов с помощью unset()
Удалите вместе элементы с индексами 0 и 1:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
unset($cars[0], $cars[1]);
var_dump($cars);
?>
Удаление элемента из ассоциативного массива
unset() работает и с ассоциативными массивами.
Просто передайте ключ элемента, который нужно удалить.
Удаление элемента ассоциативного массива с помощью unset()
Удалите элемент «model»:
Вывод: PHP-скрипт
<?php
$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
unset($cars["model"]);
var_dump($cars);
?>
Функция PHP array_diff()
Ещё один вариант для ассоциативных массивов — array_diff().
Эта функция не изменяет исходный массив и возвращает новый, в котором нет перечисленных вами элементов.
Примечание: Здесь вы перечисляете значения, а не ключи.
Удаление элементов с помощью array_diff()
Создайте новый массив без «Mustang» и «1964»:
Вывод: PHP-скрипт
<?php
$cars = array("brand" => "Ford", "model" => "Mustang", "year" => 1964);
$newarray = array_diff($cars, ["Mustang", 1964]);
var_dump($newarray);
?>
PHP array_pop() - удаление последнего элемента массива
Чтобы удалить последний элемент массива, вызовите array_pop().
Удаление последнего элемента с помощью array_pop()
Удалите «Toyota», последний автомобиль:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
array_pop($cars);
var_dump($cars);
?>
PHP array_shift() - удаление первого элемента массива
Чтобы удалить самый первый элемент массива, вызовите array_shift().
Удаление первого элемента с помощью array_shift()
Удалите «Volvo», первый автомобиль:
Вывод: PHP-скрипт
<?php
$cars = array("Volvo", "BMW", "Toyota");
array_shift($cars);
var_dump($cars);
?>