PHP - How to remove empty entries of an array recursively?

前端 未结 6 1140
臣服心动
臣服心动 2020-12-15 22:58

I need to remove empty entries on multilevel arrays. For now I can remove entries with empty sub-arrays, but not empty arrays... confused, so do I... I think the code will h

6条回答
  •  庸人自扰
    2020-12-15 23:50

    Try this code:

     $value) {
            if (is_array($value)) {
                $haystack[$key] = array_remove_empty($haystack[$key]);
            }
    
            if (empty($haystack[$key])) {
                unset($haystack[$key]);
            }
        }
    
        return $haystack;
    }
    
    $raw = array(
        'firstname' => 'Foo',
        'lastname'  => 'Bar',
        'nickname' => '',
        'birthdate' => array(
            'day'   => '',
            'month' => '',
            'year'  => '',
        ),
        'likes' => array(
            'cars'  => array('Subaru Impreza WRX STi', 'Mitsubishi Evo', 'Nissan GTR'),
            'bikes' => array(),
        ),
    );
    
    print_r(array_remove_empty($raw));
    

提交回复
热议问题