一尘不染

从多维数组中递归删除空元素和子数组

php

对于从PHP数组中删除空元素这一古老的问题,我似乎找不到一个简单而直接的解决方案。

我的输入数组可能如下所示:

Array ( [0] => Array ( [Name] => [EmailAddress] => ) )

(依此类推,如果有更多数据,尽管可能没有…)

如果看起来像上面的一样,我希望在处理 之后将其 完全清空

因此print_r($array);将输出:

Array ( )

如果我运行,$arrayX = array_filter($arrayX);我仍然会得到 相同的
print_r输出。不过,我到过的所有地方都表明这是在PHP5中删除空数组元素的最简单方法。

我也尝试过,$arrayX = array_filter($arrayX,'empty_array');但是出现以下错误:

警告:array_filter()[function.array-filter]:第二个参数’empty_array’应该是有效的回调

我究竟做错了什么?


阅读 313

收藏
2020-05-29

共1个答案

一尘不染

尝试使用array_map()将过滤器应用于的每个数组$array

$array = array_map('array_filter', $array);
$array = array_filter($array);
2020-05-29