【发布时间】:2012-04-11 07:32:51
【问题描述】:
对于 PHP 中从数组中删除空元素这一古老的问题,我似乎找不到简单、直接的解决方案。
我的输入数组可能如下所示:
Array ( [0] => Array ( [Name] => [EmailAddress] => ) )
(等等,如果有更多的数据,虽然可能没有......)
如果它看起来像上面那样,我希望它在处理后完全为空。
所以print_r($array); 会输出:
Array ( )
如果我运行 $arrayX = array_filter($arrayX);,我仍然会得到 same print_r 输出。然而,我看过的所有地方都表明这是在 PHP5 中删除空数组元素的最简单方法。
我也尝试了$arrayX = array_filter($arrayX,'empty_array');,但出现以下错误:
警告:array_filter() [function.array-filter]:第二个参数“empty_array”应该是一个有效的回调
我做错了什么?
【问题讨论】:
-
array_filter 设置为一维数组。
-
您能否提供示例输入,以及预期的输出?有几种不同的方式来解释你的问题,“如果它看起来像上面那样,我希望它在处理后完全是空的。” 让我失望,你想要它吗完全消失还是成为一个空数组?
-
您的新错误是因为
empty_array不是定义的函数。我也想知道你的真正用例是什么...... -
@mickmackusa 正确答案在已接受问题下方的 cmets 中。不知道为什么韦斯利没有把它加入他的答案,但我现在已经添加了。
-
如果标题改为:
Remove empty elements then empty subarrays from a 2d array,你会不会生气? IMO 的这一澄清很重要,因为这样可以更好地针对重复的页面关闭。
标签: php arrays multidimensional-array filtering is-empty