Казалось бы довольно тривиальная задача, и нужная ф-я должна быть встроена в ядро PHP, но нее к сожалению нет. И приходится находить свои решения для реализации данного функционала. Одно из решений удаления элемента массива по его значению приведено ниже:
if(($delete_key = array_search($search_value, $my_array)) !== false) { unset($my_array[$delete_key]); }
Можно сказать две строки — и функционал готов.
Давайте детальнее разберем код выше:
array_search() - осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
unset() - удаляет переменную или элемент массива
В операторе «if», мы одновременно выполняем три действия:
- Поиск ключа в массиве с помощью функции array_search()
- Присвоение результата поиска переменной $delete_key
- Проверка найденного результата по типу.
Но и в конце. В случае если содержимое «$delete_key» не равно «false» - мы удаляем элемент массива по ключу.
А в этой статье можно узнать как удалить элемент массива по ключу в PHP.