使用带有回调函数的array_filter删除空数组元素

时间:2010-09-03 12:59:12

标签: php

我正在尝试使用函数array_filter删除数组中的空元素。

当我使用这样的外部回调时:

function callback($a) { return !empty($a);}
$arr = array("abc",'','ghi');
$res = array_filter($arr, "callback");

它按预期工作。

但是如果我像这样使用array_filter:

$arr = array("abc",'','ghi');
$res = array_filter($arr, function($a) { return !empty($a);});

失败并显示错误:

PHP Parse error:  syntax error, unexpected T_FUNCTION in test.php on line 2

我做错了什么?

2 个答案:

答案 0 :(得分:15)

您似乎使用的PHP版本不支持anonymous functions(从PHP 5.3.0开始提供)。

但是如果你没有指定回调函数,array_filter已经过滤了空值:

  

如果未提供 callback ,则 input 的所有条目等于 FALSE (请参阅{{3 }})将被删除。

答案 1 :(得分:0)

适用于PHP5。检查您的PHP版本,并在必要时进行升级。