php对数组的操做已经很完善了,提供给咱们不少内置函数用以操做数组,其实能够用array_filter函数对PHP数组中的控制进行过滤php
array_filter() 函数用回调函数过滤数组中的值。该函数把输入数组中的每一个键值传给回调函数。若是回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变数组
其中有个小关键点:If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed. 若是没有给出回调函数,全部的等于 FALSE 的元素将会被移除掉,咱们能够轻松的利用这个函数去除一维数组中的空值函数
$array = [
0 => '啦啦啦啦',
1 => 123,
2 => false,
3 => 'www.tongzhuo100.com',
4 => null,
5 => '',
];spa
print_r(array_filter($array));rem
结果为:input
Array
(
[0] => 啦啦啦啦
[1] => 123
[3] => www.tongzhuo100.com
)回调函数
同时咱们也能够利用array_filter() 去除二维数组中的空值io
$array = [
['name'=>'asd'],
['name'=>''],
['name'=>'asd'],
['name'=>''],
];function
$array = array_filter($array, function ($v) {
return $v['name'];
});方法
print_r($array);
结果为:
Array
(
[0] => Array
(
[name] => asd
)
[2] => Array
(
[name] => asd
)
)
但我的以为此方法仍是有一个缺陷,就是 $v['name'] 这种写法注定了一个方法只能处理一个数组,若是数组内容发生变化或要求过滤的字段改变就只能从新写一个方法了,代码重用性不好,有没有更好的办法,你们互相分享一下