如何删除数组中的空元素?如,删除下面数组中的空元素

]如何删除数组中的空元素?如,删除下面数组中的空元素
$arr=[1,2,3,'',5,6,0]。


解决办法:
NO1.使用array_filter()过滤
$arr=[1,2,3,'',5,6,0];
$arr=array_filter($arr,function($item){
return $item!=='';
});
print_r($arr);


NO2.使用array_diff()(感谢@北京php码农 提供方法)
$arr=[1,2,3,'',5,6,0];
$arr=array_diff($arr,['']);
print_r($arr);


!!!!!!!!!!!!!!!
升级问题:对于一个任意维度的数组,如何删除里面的空白元素?(感谢@php-青岛-辛壮 提供问题)
比如:
Input:
$arr=[
        [1,2,3,'',0,4=>[1,2,'',0],5],
        [1,2,3,'',0,4,5]
];
Output:
$arr=[
        [1,2,3,0,4=>[1,2,0],5],
        [1,2,3,0,4,5]
];


解决办法1:
$arr=[
        [1,2,3,'',0,4=>[1,2,'',0],5],
        [1,2,3,'',0,4,5]
];


function walk_recursive_remove ($array, $callback) { 
    foreach ($array as $k => $v) { 
        if (is_array($v)) { 
            $array[$k] = walk_recursive_remove($v, $callback); 
        } else { 
            if ($callback($v, $k)) { 
                unset($array[$k]); 
            } 
        } 
    } 
    return $array; 



function test_remove($v,$k){
return $v === '';
}


$ret=walk_recursive_remove($arr, 'test_remove');


print_r($ret);

你可能感兴趣的:(PHP)