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

Удаление повторяющихся элементов по ключу в ассоциативном массиве

Реклама
Новое
Реклама