数组过滤器php多维数组


Array filter php multi dimensional array

php中是否有一个内置的数组方法来过滤嵌套的关联数组?

例如:

$myArray = array(
    array('key1' => ''),
    array('key1' => 'value 1'),
    array('key1' => 'value 2'),
);

我想删除任何带有和空值的元素——在本例中是第一个元素。

我知道array_filter会对平面数组做类似的事情,但除了循环并创建自己的新数组之外,我找不到任何东西。如果这是最好的解决方案,那没关系,我可以自己做。我只是不想忽略一个内置的方法。

$myArray = array_filter($myArray, function($el){ return !empty($el['key1']); });

有一些本地PHP函数可以用来实现这一点,它稍微简单一点:

  1. 从不包含值的嵌套数组中删除所有键,然后
  2. 删除所有空的嵌套数组。

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