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

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


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


NO2.使用array_diff()(感谢@北京php码农 提供方法)
<?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:
<?php
$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);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值