Як видалити елемент масиву по ключу в 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>";

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

Пости на схожі теми

З вашим WordPress сайтом проблеми? потрібний додатковий функціонал? нестандартний плагін чи згорнути нову сторінку?
Тоді напишіть мені через форму зворотного зв'язку, і я намагатимусь вам допомогти.

Напишіть коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *