У цій короткій статті розглянемо декілька прикладів видалення елементів масиву за його ключем.
Повний лістинг коду нижче:
$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>";Перевіряємо результат — так, все гаразд, значення видалено.
