]如何删除数组中的空元素?如,删除下面数组中的空元素
$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);