在不知道键的情况下从数组中删除空数组元素

时间:2018-10-31 10:47:09

标签: php arrays array-filter

我有一个数组,在其中我不知道调用什么键,并且我试图从所有子键为空(无值)的数组中删除所有项。

我的数组看起来像这样。第二个元素[1]具有空值,因此我想将其删除,只保留第一个元素[0]。

Array
(
    [0] => Array
        (
            [Some key here] => 26542973
            [generated key] => John
            [who knows what key] => 10
        )

    [1] => Array
        (
            [Some key here] => 
            [generated key] => 
            [who knows what key] => 
        )

)

我尝试使用数组过滤器,但没有删除空元素。它将它们都留在了数组中。

$filtered_array = array_filter($array);

我希望最终结果看起来像这样(删除了空白元素)。

Array
(
    [0] => Array
        (
            [Some key here] => 26542973
            [generated key] => John
            [who knows what key] => 10
        )
)

2 个答案:

答案 0 :(得分:4)

array_map array_filter一起使用。

$array = array(array('data1','data1'), array('data2','data2'), array('','')); 
$array = array_filter(array_map('array_filter', $array));
print_r($array);

DEMO

答案 1 :(得分:2)

您可以使用array_filter(),如底部所示。因此,您需要使用implode()连接内部数组的项,并检查结果是否为空。

$arr = array_filter($arr, function($val){
    return implode("", $val) != "";
});

demo中查看结果