如何从多维数组中删除空值

时间:2014-01-23 07:34:32

标签: php arrays phpexcel

我有这样的数组结构,

Array
(
    [1] => Array
        (
            [1] => 
            [2] => 
            [3] => 
            [4] => Product
            [5] => Product Name
            ..
            [59] => Color
        )

    [2] => Array
        (
            [1] => 
            [2] => 
            [3] => 1
            [4] => 9155
            ....
            [59] => 
        )

    [3] => Array
        (
            [1] => 
            [2] => 
            [3] => 1
            [4] => 9165
            ...
            [59] => Green
        )

    [4] => Array
        (
            [1] => 
            [2] => 
            [3] => 
            [4] => 
           ...
            [58] => 
            [59] => 
        )
        )

它从Excel工作表中读取数据,问题是当我从excel表读取数据时它也读取空行,我已经尝试忽略excel表中的空行,以及它的工作原理(当从MSexcel创建excel时)但是从Google Drive中读取空行。所以我想删除那些1-59空行的行。在上面的示例数组中,索引为4。

请注意,某些索引在许多子索引中都缺少值,但我不想删除它们,只有1-59的所有子索引都是空白的,那么主索引(这里是4)需要删除。

是否有任何智能方法可以删除那些具有空值的数组索引。我不想迭代所有数组并存储到另一个数组。

4 个答案:

答案 0 :(得分:2)

使用array_map

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

答案 1 :(得分:2)

如果要删除作为空数组的索引4:

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

答案 2 :(得分:1)

让我们尝试使用array_filter

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));

Array
(
    [0] => foo
    [2] => -1
)

答案 3 :(得分:0)

使用array_filter ..它将删除所有空值..

array_filter($array);