Шрифт
Удаление элементов из массива в PHP
Play

Удаление элементов из массива в 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.

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

Данная запись опубликована в 11.11.2015 14:04 и размещена в PHP. Вы можете перейти в конец страницы и оставить ваш комментарий.

Мало букафф? Читайте есчо !

Загрузка-выгрузка в формате excel из PHP

Встроенные библиотеки PHP не позволяют работать с форматами данных популярного табличного процессора Excel. За исключением текстового формата CSV (см. .

Считаем полное число строк в запросе MySQL, ограниченного LIMIT

О полезном операторе - SQL_CALC_FOUND_ROWS. Это конструкция просто незаменима для организации постраничного вывода каких либо данных. Все время забываю синтаксис, приходится каждый раз искать. Решил записать в блоге, чтобы уж не терять :). Во всех .

Комментарии к «Удаление элементов из массива в PHP»

Понравилась статья? Есть вопросы? - пишите в комментариях.

Много комментариев в “Удаление элементов из массива в PHP”

В удалении последнего элемента — присвоение удаляемого элемента переменной не нужно. Достаточно сделать так:

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

    Поделиться ссылкой
  • Sergey к записи Если simplexml «не парсит» атрибуты…
  • София к записи Вход в подземелья Храмового острова Ведьмак 3
  • Vadim к записи Показ навигации и пагинатора swiper js за пределами контейнера
  • Сергей к записи Как в Drupal добавить страницу?
  • admin к записи Как в Drupal добавить страницу?
  • Сергей к записи Как в Drupal добавить страницу?
  • Oleg к записи Расчет хеша онлайн
  • DMS к записи Слабые места Dagan, эпическая сюжетная линия eve online
  • Где взять CLI клиент jenkins
  • Сodewars — любителям кодить посвящается
  • Абсолютный Лук в Skyrim
  • Проверка, что поле пустое в twig
  • Как зацепиться за редактор формы параграфа (paragraph)

Сделано на wordpress. В сети с 1999 г. Копирование, полная или частичная перепечатка материалов сайта допускается лишь с прямой ссылкой на страницу-первоисточник.

📎📎📎📎📎📎📎📎📎📎