当前位置: 首页 > 面试题库 >

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

萧焱
2023-03-14
问题内容

对于从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’应该是有效的回调

我究竟做错了什么?


问题答案:

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

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


 类似资料:
  • 问题内容: 我试图从基于值的多维数组中删除元素。在这种情况下,如果子数组的键“ year”的值为2011,则我希望该子数组消失。 仅作记录:我正在运行PHP 5.2。 我的数组如下所示: 问题答案: 尝试这个: 然后,您将这样称呼它:

  • 问题内容: 如何从JavaScript中的数组中删除空元素? 有没有简单的方法,还是我需要遍历它并手动将其删除? 问题答案: 编辑: 大约9年前,当时没有很多有用的内置方法时,就回答了这个问题。 现在,当然,我建议您使用该方法。 请记住,此方法将为您返回 一个新数组, 其中的元素可以通过您提供给它的回调函数的条件。 例如,如果要删除或值: 例如,这将取决于您认为什么是“空”,如果您正在处理字符串,

  • 问题内容: 根据用户提交的内容,数组中的某些元素是空字符串。我需要删除那些元素。我有这个: 但这是行不通的。仍然有空元素。我也尝试过使用该功能,但是结果是一样的。 问题答案: 在处理字符串数组时,您可以简单地使用,它可以方便地为您处理所有这一切: 请记住, 如果未提供回调 ,则将删除所有等于(请参见转换为boolean)数组的条目。因此,如果您需要保留元素,即确切的string ,则需要一个自定义

  • 问题内容: 有什么快速(好看的)方法可以从Java中的数组中删除元素? 问题答案: 你可以使用的。

  • 问题内容: 我有两个numpy数组: 我想从p_rem中的p_a_colors中删除所有列,所以我得到: 我认为,某些事情应该像 但我只是不知道轴或[:]正确。 我知道 可以,但是我试图避免(python)循环,因为我也想要正确的性能。 问题答案: 这就是我要做的: 您需要执行void dtype事情,以便numpy整体比较行。之后,使用内置的set例程似乎是显而易见的方法。

  • 问题内容: 我有一个字符数组,一次最多可以容纳50000个字符。该数组的内容通过套接字连接来。但是,不能保证此字符缓冲区不会有任何空元素。然后,我需要将此字符数组转换为字符串(例如,新的String(buffer);)。我的问题是,每当我从套接字收到的缓冲区长度不超过50000时,如何从此char数组或String中删除剩余的元素或空元素?如果没有,您建议的最有效方法是什么? / 这是当前的实现