Intereting Posts
Заполните вход для ввода с помощью ввода текста Удаление дубликатов записей без создания временной таблицы codeigniter возвращает "Message: Undefined property: Welcome :: $ load" пытается загрузить вспомогательную библиотеку lib Улучшенные миниатюры Есть ли способ использования PHP-ActiveRecord в качестве уровня ORM / абстракции Symfony? Получите количество просмотров для продукта magento на основе product_id Как я могу использовать break или продолжить цикл for в шаблоне Twig? Обработка связей при ранжировании от наивысшего до самого низкого Импорт данных доступа в MySQL с использованием PHP Получение мультимедиа: thumbnail из XML Как сделать переменную global по всему классу как получить отсортированный результат в запросе mysql? Загрузочная библиотека Google php loadServiceAccountJson – исправлена ​​в приложении Доступ к последней созданной строке в PHP / MySQL Создание простой поисковой системы на основе текстового файла

Нужна помощь в удалении пустых значений массива из многомерного массива

Мне было интересно, может ли кто-нибудь помочь мне, у меня многомерный массив, и мне нужно, чтобы значения были удалены, если они пустые (ну, они установлены в 0). Вот мой массив:

Array ( [83] => Array ( [ctns] => 0 [units] => 1 ) [244] => Array ( [ctns] => 0 [units] => 0 ) [594] => Array ( [ctns] => 0 ) ) 

И я хочу, чтобы меня оставили только:

 Array ( [83] => Array ( [units] => 1 ) ) 

Если бы кто-нибудь мог мне помочь, это было бы фантастически! 🙂

это поможет вам:

Удалить пустые элементы из многомерного массива в PHP

Изменить :

  function array_non_empty_items($input) { // If it is an element, then just return it if (!is_array($input)) { return $input; } $non_empty_items = array(); foreach ($input as $key => $value) { // Ignore empty cells if($value) { // Use recursion to evaluate cells $items = array_non_empty_items($value); if($items) $non_empty_items[$key] = $items; } } // Finally return the array without empty items if (count($non_empty_items) > 0) return $non_empty_items; else return false; } 

Похоже, вам нужен обход дерева:

 function remove_empties( array &$arr ) { $removals = array(); foreach( $arr as $key => &$value ) { if( is_array( $value ) ) { remove_empties( $value ); // SICP would be so proud! if( !count( $value ) ) $removals[] = $key; } elseif( !$value ) $removals[] = $key; } foreach( $removals as $remove ) { unset( $arr[ $remove ] ); } }