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]
)