【问题标题】:Parse a multi dimentional array in PHP在 PHP 中解析多维数组
【发布时间】:2014-12-05 12:51:00
【问题描述】:

我有一个数组

[1] => Array (
[1] => Report
)
[2] => Array (
[1] => Merchant Name
[2] => Merchant Id
[3] => Merchant Ref No
[4] => Trans Date
[5] =>  Ref No
[6] => Trans Type
[7] => Trans Amt
[8] => Trans Fee
[9] => Serv Tax
[10] => Total Fee
[11] => Amt Settled
[12] => Neft Ref.No
[13] => Settlmnt Date
[14] => Funds Settld Date
)
[3] => Array (
[1] => yy Private Limited
[2] => ESSIZMM000
[3] => zWidItN33452373TcH
[4] => 2014-12-02 10:27:47.82
[5] => 265135490490229682
[6] => SALES
[7] => 249
[8] => 2.241
[9] => 0.277
[10] => 2.518
[11] => 246.482
[12] => ABB SL : 00012
[13] => 04-12-2014
[14] => 04-12-2014
)

这是我在解析 excel 后得到的一个数组。第一个数组是 excel 的标题,列名在那里,第二个数组之后是真实数据。有人可以帮我解析所有除第一个数组外,数组的第 11 个索引?这里第 11 个索引是一个数量,但在第一个数组中,是我不需要的标题 'Amt Settled'。

我试过了

$cells = $worksheet['cells'];

foreach ($cells as $key => $value)
{
    echo $value['11'];
}

其中 $cells 是上面打印的数组。但是当我使用它时,我得到了

Amt Settled246.482

如何跳过第一个数组,即 excel 的标题。除了我的代码之外,还有其他更好的建议吗?请帮助

【问题讨论】:

  • 取决于您使用什么来读取 Excel 文件,甚至是真正的 Excel 文件还是简单的 CSV 文件;但基本上你应该在你的代码中实现你真正想要的逻辑
  • @MarkBaker 谢谢。解析后我得到的最终数组是这个。我需要逻辑上的帮助
  • 你也想删除这个:[1] => Array ( [1] => Report )

标签: php arrays excel


【解决方案1】:

试试这个 -

$i = 0;
foreach ($cells as $key => $value)
{
    if ($i > 2) {
        echo $value['11'];
    }
    $i++;
}

【讨论】:

    【解决方案2】:

    试试这个:

    <?php
    $your_array = your array goes here;
    array_shift($your_array);
    print_r($your_array);
    
    //here you do your foreach
    
    ?>
    

    参考:http://php.net/manual/en/function.array-shift.php

    编辑:我认为在您的情况下,您还必须使用 array_shift 2 次才能删除它:[1] =&gt; Array ( [1] =&gt; Report )

    如果是这样试试这个:

    <?php
    $your_array = your array goes here;
    array_shift($your_array);
    array_shift($your_array);
    print_r($your_array);
    
    //here you do your foreach
    
    ?>
    

    【讨论】:

      【解决方案3】:

      假设单元格数据从 ['cells'][3] 开始,您可以 slice 数组从索引 3 开始:

      $cells = array_slice($worksheet['cells'], 3, NULL, TRUE);
      
      foreach ($cells as $key => $value)
      {
          echo $value['11'];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        • 2019-06-13
        • 2013-04-12
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        相关资源
        最近更新 更多