Удаление элемента из массива в PHP

Кондитерская фабрика Нева
Кондитерская фабрика Нева
  • Сообщений: 11
  • Последний визит: 30 января 2025 в 02:21

Есть ли простой способ удалить элемент из массива, используя PHP, так что foreach ($array) больше не включает этот элемент?

Я думал, что установить его на null сделает это, но, видимо, это не работает.

Сергей Андрющенко
Сергей Андрющенко
  • Сообщений: 9
  • Последний визит: 3 февраля 2025 в 16:10

Следует отметить, что unset() сохранит индексы нетронутыми, чего и следовало ожидать при использовании строковых индексов (массив в качестве хэш-таблицы), но может быть весьма неожиданным при работе с целочисленными индексированными массивами:

$array = array(0, 1, 2, 3); unset($array[2]); var_dump($array); /* array(3) {   [0]=>   int(0)   [1]=>   int(1)   [3]=>   int(3) } */  $array = array(0, 1, 2, 3); array_splice($array, 2, 1); var_dump($array); /* array(3) {   [0]=>   int(0)   [1]=>   int(1)   [2]=>   int(3) } */ 

So array_splice() можно использовать, если вы хотите нормализовать свои целочисленные ключи. Другой вариант — использовать array_values() после unset():

$array = array(0, 1, 2, 3);  unset($array[2]); $array = array_values($array); var_dump($array); /* array(3) {   [0]=>   int(0)   [1]=>   int(1)   [2]=>   int(3) } */ 

Афанасий Никольцев
Афанасий Никольцев
  • Сообщений: 14
  • Последний визит: 12 марта 2025 в 03:13

Если у вас есть численно индексированный массив, где все значения уникальны (или они не являются универсальными, но вы хотите удалить все экземпляры определенного значения), вы можете просто использовать array_diff () для удаления соответствующего элемента, например,:

$my_array = array_diff($my_array, array('Value_to_remove'));

Например:

$my_array = array('Andy', 'Bertha', 'Charles', 'Diana'); echo sizeof($my_array) . "\n"; $my_array = array_diff($my_array, array('Charles')); echo sizeof($my_array);

Это отображает следующее:

4 3 

В этом примере элемент со значением «charles» удаляется, как это можно проверить с помощью вызовов SizeOf (), которые сообщают об размере 4 для начального массива, и 3 после удаления.

Авторизуйтесь, чтобы писать на форуме.

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон