В данной короткой статье, рассмотрим пару примеров удаление элементов массива по его ключу.
Полный листинг кода ниже:
$array = [ 1 => 'One', 'Two' => 3, 'Three' => 'Three', 4 => NULL, ]; echo "<pre dir='ltr'>";print_r($array); echo "</pre>"; if(isset($array['Two'])) { unset($array['Two']); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>"; if(isset($array[4])) { unset($array[4]); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>"; if(array_key_exists(4, $array)) { unset($array[4]); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>";
Что мы имеем:
$array = [ 1 => 'One', 'Two' => 3, 'Three' => 'Three', 4 => NULL, ]; echo "<pre dir='ltr'>";print_r($array); echo "</pre>";
инициализация массива с четырьмя значениями (обратите внимание на последний).
Удаление элемента массива по ключу, ничем не отличается от удаления обычной переменной. Для этого, нужно использовать функцию PHP «unset()», с аргументом удаляемой переменной. Но прежде чем что-то удалять, нужно проверить, была ли инициализирована переменная ранее. Иначе может возникнуть ошибку.
Для проверки можно использовать следующее условие:
if(isset($array['Two'])) { unset($array['Two']); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>";
и сразу же проверить результат. Как видите, массив был уменьшен на одну запись.
Продолжим наше исследование, и постараемся удалить элемент массива с ключом «4»:
if(isset($array[4])) { unset($array[4]); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>";
Проверив результат, мы обнаружим что значение не было удалено. Все дело в условном операторе и функции «isset()». Дело в том, что она не срабатывает для переменной имеющей значение NULL. Поэтому, в подобных случаях лучше использовать функцию «array_key_exists()»:
if(array_key_exists(4, $array)) { unset($array[4]); } echo "<pre dir='ltr'>";print_r($array); echo "</pre>";
Проверяем результат — да, все в порядке, значение удалено.
А в этой статье можно узнать как удалить элемент массива по значению.