Удалить пустые элементы из массива проще всего при помощи функции array array_diff(array $array1, array $array2[, array $. ]) . В качестве первого параметра передается исходный массив, в качестве второго — массив с одним пустым значением.
Пример
Возьмем в качестве примера массив с несколькими пустыми элементами и удалим их.
Пример 2
В качестве другого примера возьмем массив, где в качестве пустых значений будут нули и null-значения, которые нужно удалить.
Функция array_delete()
Можно написать функцию array array_delete(array $array, array $symbols = array(”)) , которая будет принимать два параметра: исходный массив и необязательный параметр-массив с элементами, которые надо удалить.
Категории
Читайте также
Комментарии
Благодарен за статью, очень помогла с ВП (вывод не пустого массива заполненных произвольных полей).
Введите данные указанные при регистрации:
Социальные сети
Вы можете быстро войти через социальные сети:
У меня следующая проблема:
Есть многомерный массив, количество уровней может быть самое разное. Например:
Нужно удалить все элементы null на всех уровнях. Все попытки совместить array_walk и array_filter, или использовать лямбда-функции успехом не увенчались. Может есть готовое решение?
unset удаляет только значение, а я хочу удалить еще и ключи. Что использовать для этого? Также хотелось бы узнать функцию, которая удалит все это дело полностью сама, без циклов, думаю, что такая есть, не так ли?
6 ответов 6
В зависимости от того, что считается "пустым" элементом, можно еще такой вариант предложить:
Зашел посмотреть на решение достаточно насущной проблемы. Беглым взглядом окинул топик и увидел, что нормального решения пока нет. Сочинил следующее:
Не изящно, но очень просто и, главное, работает 🙂
Хотелось бы отметить что далеко не всегда такого кода достаточно:
Например так мы например можем нарваться на неприятности: