Как удалить массив в PHP?

Как удалить массив в PHP?

В этом уроке вы не только узнаете, как удалить массив PHP, но и как удалить один или несколько элементов массива разными способами. Начнем с простого:

  • Для того, чтобы удалить один из элементов массива, воспользуемся функцией unset():

 unset($array);
 unset($array['foo']);
  • Для удаления нескольких непоследовательных элементов также пригодится функция unset():
 unset($array, $array);
 unset($array['foo'], $array['bar']);
  • Для удаления нескольких последовательных элементов используйте функцию array_splice():
 array_splice($array, $offset, $length);
  • Для того, чтобы удалить массив полностью, необходимо воспользоваться той же функцией UnSet(), аргументом которой будет сам удаляемый массив. Вот пример удаления массива:
<?
echo "<h2>PHP UnSet array</h2><hr>";
$array[0] = 0;
$array[1] = 1;
$array[2] = 2;
$array[3] = 3;
$arrayCount = count($array);
echo "array count = "; echo $arrayCount;
echo "<br>";
for($inn = 0; $inn < $arrayCount; $inn++)
{
    echo "array["; echo $inn; echo "] = "; echo "$array[$inn] <br>";
}
echo "<br>";
UnSet($array);
$arrayCount = count($array);
echo "array count after UnSet = "; echo $arrayCount;
?>

Применение этих функций удалит все ссылки на эти элементы из PHP кода. Для сохранения в массиве ключа с пустым значением необходимо присвоить элементу пустую строку:

$array = $array['foo'] = '';

Есть логическое отличие между использованием функции unset() и присваиванием элементу пустой строки (»). В первом случае говорится: «Этого элемента больше не существует», а во втором – «Этот элемент еще существует, но его значение равно пустой строке».

После применения функции unset() к какому-либо элементу массива, PHP корректирует его так, чтобы цикл продолжал правильно работать. Он не сжимает массив для заполнения пустого пространства, поэтому, можно утверждать, что все массивы являются ассоциативными, даже если кажутся числовыми. Например:

 // создаем "нумерованный" массив
 $animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
 print $animals; // печатает 'bee'
 print $animals; // печатает 'cat'
 count($animals); // возвращает 6

 // unset()
 unset($animals); // удаляет элемент $animals = 'bee'
 print $animals; // печатает '' и выдает ошибку E_NOTICE
 print $animals; // все еще печатает 'cat'
 count($animals); // возвращает 5, даже если $array равно 'fox'

 // add new element
 $animals[] = 'gnu'; // добавляем новый элемент (не в Unix)
 print $animals; // печатает '', все еще пустая
 print $animals; // печатает 'gnu', где 'gnu' заканчивается
 count($animals); // возвращает 6

 // присваиваем ''
 $animals = ''; // нулевое выходное значение
 print $animals; // печатает ''
 count($animals); // возвращаем 6, счетчик не уменьшается

Используем функцию array_values(), для того, чтобы сжать массив до плотно заполненного числового массива:

 $animals = array_values($animals);

Функция array_splice() автоматически реиндексирует массив, чтобы не оставлять «дыр»:

 // создаем "числовой" массив
 $animals = array('ant', 'bee', 'cat', 'dog', 'elk', 'fox');
 array_splice($animals, 2, 2);
 print_r($animals);
 Array
 (
 [0] => ant
 => bee
 => elk
 => fox
 )

Это полезно, если работать с массивом как с очередью, разрешая произвольный доступ. Для безопасного удаления первого или последнего элемента массива применяются функции array_shift() и array_pop()

0
Поделиться
Mentor

Уже более четырех лет интернет - моё хобби. Больше всего мне удалось освоить веб-дизайн. В настоящее время активно занят продвижением сайтов.

Обратные ссылки на эту публикацию

    Warning: call_user_func() expects parameter 1 to be a valid callback, function 'zoomarts_list_pings' not found or invalid function name in /home/virtwww/w_mentor-su_32e9d8af/http/wp-includes/comment-template.php on line 1833

Оставить комментарий

Войти с помощью: 
Яндекс.Метрика