Мне было интересно, может ли кто-нибудь помочь мне, у меня многомерный массив, и мне нужно, чтобы значения были удалены, если они пустые (ну, они установлены в 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 ] ); } }