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

标签 php arrays multidimensional-array filtering is-empty

我似乎无法找到一个简单、直接的解决方案来解决从 PHP 中的数组中删除空元素这一古老问题。

我的输入数组可能是这样的:

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

(以此类推,如果有更多的数据,虽然可能没有...)

如果它看起来像上面那样,我希望它在我处理后完全是空的

所以 print_r($array); 会输出:

Array ( )

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

我也试过 $arrayX = array_filter($arrayX,'empty_array'); 但我得到了以下错误:

Warning: array_filter() [function.array-filter]: The second argument, 'empty_array', should be a valid callback

我做错了什么?

最佳答案

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

$array = array_map('array_filter', $array);
$array = array_filter($array);

演示:http://codepad.org/xfXEeApj

关于php - 从多维数组中递归删除空元素和子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9895130/

相关文章:

php - Apache/PHP 到 Nginx/Tornado/Python

php - 如何在zend服务器中使用php连接MySQL数据库

javascript - 如何使用 Javascript 从数组中获取奇数/偶数值并显示在表中

database - 在结构上从Iterator填充Rust NDarray的正确方法是什么?

javascript - 如何将多维数组转换为这种格式

PHP MySQL 如何正确存储/转义字符串

php - MySQL 在一个查询中合并两个更新查询

c - 二维数组中 c 语言的螺旋矩阵

javascript - 是否可以操作 Array.prototype.reduce 的索引参数?

ios - 处理此类问题的更好方法是什么?