【问题标题】:How to remove empty values from the multi dimensional array如何从多维数组中删除空值
【发布时间】:2014-02-13 15:20:58
【问题描述】:

我有这样的数组结构,

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)需要删除。

是否有任何聪明的方法来删除那些具有空值的数组索引。我不喜欢迭代所有数组并存储到另一个数组。

【问题讨论】:

标签: php arrays phpexcel


【解决方案1】:

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

array_filter($array);

【讨论】:

    【解决方案2】:

    让我们试试 array_filter

    $entry = array(
                 0 => 'foo',
                 1 => false,
                 2 => -1,
                 3 => null,
                 4 => ''
              );
    
    print_r(array_filter($entry));
    
    Array
    (
        [0] => foo
        [2] => -1
    )
    

    【讨论】:

      【解决方案3】:

      使用array_map

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

      【讨论】:

      • 它不删除索引 4 它自己只是删除子索引?
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 2017-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-18
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多