PHP过滤数组中的空值
php对数组的操作已经很完善了,提供给我们很多内置函数用以操作数组,其实可以用array_filter函数对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 => '',
];
print_r(array_filter($array));
结果为:
Array
(
[0] => 啦啦啦啦
[1] => 123
[3] => www.tongzhuo100.com
)
同时我们也可以利用array_filter() 去除二维数组中的空值
$array = [
['name'=>'asd'],
['name'=>''],
['name'=>'asd'],
['name'=>''],
];
$array = array_filter($array, function ($v) {
return $v['name'];
});
print_r($array);
结果为:
Array
(
[0] => Array
(
[name] => asd
)
[2] => Array
(
[name] => asd
)
)
但个人觉得此方法还是有一个缺陷,就是 $v['name'] 这种写法注定了一个方法只能处理一个数组,如果数组内容发生变化或要求过滤的字段改变就只能重新写一个方法了,代码重用性很差,有没有更好的办法,大家互相分享一下
最新文章
- java-JDBC从数据库中读取数据并进行日期民族男女的转换
- 构建自己的PHP框架--创建组件的机制
- Linux WAS7 启动异常
- NGUI Sprite Type(Simple、Sliced、Tiled、Filed、Advanced)
- android判断应用是否有某个权限
- 自定义窗口 mfc
- Linux基本操作 2-----Linux文件系统基本结构
- python3.4 伪装成浏览器获取页面信息失败
- Java 三大特性
- mysql数据库常用数据类型
- springcloud第二步:发布服务提供者
- case when 和 decode 的比较分析
- 怎么打开在.bashrc文件以及设置颜色
- openstack-KVM-Network
- script标签
- G.711是一种由国际电信联盟(ITU-T)制定的音频编码方式
- CodeForces - 1101G :(Zero XOR Subset)-less(线性基)
- Luogu 3690 LCT - 模板
- 【Java入门提高篇】Day19 Java容器类详解(二)Map接口
- PHP compact函数