Мы принимаем к оплате:

«Подарочный сертификат» от нашего Учебного Центра – это лучший подарок для тех, кто Вам дорог! Оплате обучение и подарите Вашим родным и близким обучение по любому из курсов!!!

«Сертификат на повторное обучение» дает возможность повторно пройти обучение в нашем Учебном Центре со скидкой 1000 рублей!

А также:


Php как удалить элемент массива


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

Казалось бы довольно тривиальная задача, и нужная ф-я должна быть встроена в ядро PHP, но нее к сожалению нет. И приходится находить свои решения для реализации данного функционала. Одно из решений удаления элемента массива по его значению приведено ниже:

if(($delete_key = array_search($search_value, $my_array)) !== false) { unset($my_array[$delete_key]); }

Можно сказать две строки — и функционал готов.

Давайте детальнее разберем код выше: array_search() - осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи unset() - удаляет переменную или элемент массива

В операторе «if», мы одновременно выполняем три действия:

  1. Поиск ключа в массиве с помощью функции array_search()
  2. Присвоение результата поиска переменной $delete_key
  3. Проверка найденного результата по типу.

Но и в конце. В случае если содержимое «$delete_key» не равно «false» - мы удаляем элемент массива по ключу.

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

Массивы в PHP — один из мощнейших инструментов программиста. Когда я начинал изучать PHP, у меня был определенный багаж знаний работы с массивами в других языках программирования, таких как C++, Delphi и Fortrain. Везде требовалось объявить массив, указать его размерность, тип элементов. Ничего похожего вы не встретите в PHP. В PHP массив — это не линейный объект, а хеш-массив, т.е. набор пар — ключей и их значений.  При чем, если ключ — это скаляр, то значение может быть любым объектом, в том числе и ещё одном хешем.

Дальше я хочу показать разнообразные способы удаления элементов из хеш-массива в PHP. В языках вроде C++, Delphi для подобных трюков понадобится создать специальный объект, двусвязный или односвязный список, аккуратно выделять и освобождать память, следить за восстановлением связей в списке. В PHP же весь это менеджмент спрятан и всегда готов к использованию.

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

Если вы знаете ключ, то удаление сводится к вызову функции unset().

Как удалить первый элемент массива в PHP?

Если вы не знаете ключ, но знаете, что удалить нужно именно первый элемент массива, то можно воспользоваться функцией array_shift(). Функция извлекает значение первого элемента, удаляет его из массива и производит перенумерацию числовых ключей начиная с нуля.

В итоге, первый элемент удален, а элемент 5 => ‘b’, попадает под перенумерацию. Элементы со строковыми ключами перенумерацией не затрагиваются.

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

Похожим образом удаляется последний элемент из массива. В PHP для этого послужит функция array_pop().

Последний элемент массива удален, перенумерация оставшихся элементов не производится.

Как удалить из массива пустые элементы в PHP?

Разберемся с понятием пустой элемент. Под «пустыми» элементами можно понимать разные скалярные и не скалярные значения. Наиболее полно определение «пустого значения» определяет результат работы функции empty(). Она возвращает true для пустого элемента (не только скалярного). В этом можно убедиться на следующем примере.

Т.е. мы в цикле проверяем каждый элемент массива функцией empty(), и удаляем пустые. Обратите внимание, что строковый скаляр ‘0’ — тоже считается пустым элементом. А вот ’00’ — уже не является пустым.

Если проверка массива по-элементно кажется вам не оптимальной, то можно воспользоваться функций сравнения массивов — array_diff(), где перечислить все элементы, которые мы считаем «нулевыми».

Этот вариант даже более гибкий, т.к. позволяет задать собственное определение того, что мы считаем пустым элементом.

Как удалить повторяющиеся элементы массива PHP?

Это ещё одна частая задача при работе с массивами. В PHP для её решения есть специальная функция — array_unique(). Посмотрим как она работает.

Видим, что функция удалила из массива повторяющиеся элементы. На самом деле у функции есть ещё один параметр, который указывает как сравнивать элементы.

Значения могут быть следующими:

  • SORT_REGULAR — сравнивать без преобразования типа элементов,
  • SORT_NUMERIC — сравнивать как числа (т.е. пытаясь преобразовать в число),
  • SORT_STRING — сравнивать как строки
  • SORT_LOCALE_STRING — сравнивать как строки, учитывая выбранный набор символов (т.н. locale).

По умолчанию используется — SORT_STRING. Выбор типа сравнения имеет огромное значение. Поменяем в предыдущем примере тип на SORT_NUMERIC.

При сравнении все элементы преобразовывались в численному типу скаляра. Что в нашем случае неизменно давало значение ноль. Так у нас остался только первый элемент.

Как удалить определённый элемент массива PHP

Очень часто нужно удалить элемент массива. Как удалить определённый элемент массива PHP? Тут несколько способов. Самый простой - это воспользоваться функцией unset(). Вы должны передать ключ для удаление определённого элемента массива. Если не передадите ключ, то удалите весь массив. О массивах PHP читайте в статье массив в PHP

$arr = [1 => [1,2,3,4,5,6], 2 => [11,21,31,41,51,61]]; unset($arr[2]); print_r($arr);

Есть ещё несколько способов. Вы можете воспользоваться функцией array_splice(). Array_splice() — Удаляет часть массива и заменяет её чем-нибудь ещё.

$arr = [0 => 'PHP', 1 => 'RUBY', 2 => 'HTML', 3 => 'JAVASCRIPT', ]; $arr = array_splice($arr, 1, -1); print_r($arr);

Тут будут удалены элементы входящие в охват. Удаление произойдёт с первого элемента по предпоследний. Обратите внимание на то, то первый и последний элементы не будут удалены.

просмотры: 1040, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-12-26 12:48:40

проголосовать:

Как в php удалить элемент массива?

Такая вот простая задача — как в php удалить элемент массива?

Решается очень просто, с помощью стандартной php функции

unset( массив[индекс] )

Перед удалением элемента массива в php рекомендую проверить, присвоено ли значение в этот элемент массива с помощью функции

isset( массив[индекс]  ) 

да-бы избежать ошибок в вашем скрипте.

Получим такой код:

$array[] = array(); $array[] = '1 Элемент'; $array[] = '2 Элемент'; $i = 0; if( isset($array[$i])  ) { unset( $array[$i] ); }

Можем так-же удалить несколько элементов массива одним вызовом функции unset();

 unset ($array[0] , $array[1]); 

Рекомендую так-же почитать:

  • Возможности кэширования в PHP 

Если вам понравился данный материал, пожалуйста, нажмите на кнопку от лайка (находятся ниже) – чтобы о нем узнали другие люди.

Буду вам очень благодарен! Спасибо!

Разработка веб сайтов и плагинов для Wordpress. http://maxim-kaminsky.com/ru/


Смотрите также



Компьютерные курсы по направлениям:

Для начинающих


A

Компьютер для начинающих: Word, Excel, Access и другие программы!

Графические пакеты


B

Популярные пакеты Adobe Photoshop, CorelDraw, ArchiCAD, AutoCAD и другие!

WEB + анимация


C

Курсы по созданию сайтов, WEB-дизайну и крутой анимации в Adobe Flash!

Бухгалтерия + делопроизводство

Сетевые технологии


E

Курсы сборки ПК, системных администраторов и защиты информации!