PHP УДАЛИТЬ ЭЛЕМЕНТ МНОГОМЕРНОГО МАССИВА ПО КЛЮЧУ
Удаление элемента из многомерного массива по ключу в PHP представляет необходимость удаления элемента со всех вложенных уровней массива, если таковые имеются.
Простейший способ удаления элемента из многомерного массива - использование цикла foreach с последующим удалением элемента при нахождении ключа:
foreach ($arr as $key => $value) {
if ($key == $delete_key) {
unset($arr[$key]);
}
if (is_array($value)) {
$arr[$key] = removeByKey($value, $delete_key);
}
}
Однако более универсальный и эффективный способ удаления элемента заключается в рекурсивном поиске элемента по ключу и его удалении:
function removeByKey(&$array, $delete_key) {
foreach ($array as $key => &$value) {
if ($key == $delete_key) {
unset($array[$key]);
return true;
}
if (is_array($value) && removeByKey($value, $delete_key)) {
if (empty($value)) {
unset($array[$key]);
}
return true;
}
}
return false;
}
Функция removeByKey осуществляет рекурсивный поиск элемента по ключу и его удаление со всех уровней массива. Если элемент является вложенным массивом, происходит рекурсивный вызов функции removeByKey до тех пор, пока не будет найден элемент с заданным ключом. Если элемент был удален, то осуществляется удаление пустых вложенных массивов.
Вам нужно знать только 3 структуры данных
PHP. Как удалить элемент массива / PHP. How to delete an array element
Массивы в PHP
#35 Уроки PHP - Учим язык PHP, Проверка существования и удаление элементов массива на языке PHP
Массивы (array) в php. Простым языком и с примерами. Часть 1
Сортировка массивов в PHP
Ассоциативные и многомерные массивы в PHP - Базовый курс PHP-7
Массивы в php. Как удалять и добавлять элементы массива. Курс php с нуля. Урок 3.
#33 Уроки PHP - Учим язык PHP, Обход массива циклом for и foreach на языке PHP
Удаление повторяющихся элементов по ключу в ассоциативном массиве