Разработка сайтов на WordPress и фреймворке Yii2

Здесь вы можете заказать полный пакет услуг по разработке сайта. Начиная от написания ТЗ до программирования на PHP, JavaScript и верстке.

Как удалить элемент массива по ключу в PHP

Программирование на PHP

В данной короткой статье, рассмотрим пару примеров удаление элементов массива по его ключу.

Полный листинг кода ниже:

$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>";

Проверяем результат — да, все в порядке, значение удалено.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *