PHP快速去掉数组中值为空的项

拿到一段字符串,做\n切割,得到数组,代码如下:

$a = '[2013-09-12 12:48:23]
[2013-09-12 12:48:23]
[2013-09-12 12:48:23]
[2013-09-12 12:48:24]
';


$datas = explode("\n", $a);

print_r($datas);

输出结果:

Array
(
[0] => [2013-09-12 12:48:23]
[1] => [2013-09-12 12:48:23]
[2] => [2013-09-12 12:48:23]
[3] => [2013-09-12 12:48:24]
[4] =>
)

如上,数组中的第5项的值为空,需要过滤掉空项。

第一个反应需要foreach循环遍历处理每一项,但是感觉这个效率太低。
百度一番,发现一个函数可以直接搞定——array_filter.

PHP手册中关于array_filter的说明:

array_filter — 用回调函数过滤数组中的单元

说明
array array_filter ( array $input [, callable $callback = "" ] )

依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

参数
input
要循环的数组

callback
使用的回调函数
如果没有提供 callback函数, 将删除 input 中所有等值为 FALSE 的条目

代码如下:

$a = '[2013-09-12 12:48:23]
[2013-09-12 12:48:23]
[2013-09-12 12:48:23]
[2013-09-12 12:48:24]
';


$datas = explode("\n", $a);

print_r(array_filter($datas));

输出结果:

Array
(
[0] => [2013-09-12 12:48:23]
[1] => [2013-09-12 12:48:23]
[2] => [2013-09-12 12:48:23]
[3] => [2013-09-12 12:48:24]
)

标签: none

添加新评论