【问题标题】:How to loop through multidimensional array如何循环遍历多维数组
【发布时间】:2013-08-15 16:53:07
【问题描述】:

我有一个看起来像这样的数组:

Array
(
    [apple] => Array
        (
            [0] => 689795
            [1] => September 2012
            [2] => 689795
            [3] => September 2012
            [4] => 1113821
            [5] => June 2013
            [6] => 1122864
            [7] => July 2013
        )

    [pear] => Array
        (
            [0] => 1914898
            [1] => September 2012
            [2] => 1914898
            [3] => September 2012
            [4] => 1914646
            [5] => September 2012
            [6] => 1914898
            [7] => September 2012
        )
)

我想要做的是遍历“apple”元素并输出如下内容:

['September 2012', 689795],
['September 2012', 689795],
['June 2013', 1113821],
['July 2013', 1122864],

我怎样才能做到这一点?所以我的主要目标是将日期和值组织在一起。

我的数组数据比上面的例子长得多,但我只需要帮助才能让工作代码循环并回显类似于上面的例子。

我尝试过使用foreach,但是我无法让它工作。我对 PHP 还很陌生。

【问题讨论】:

  • 使用嵌套循环
  • reset & 2 each() 循环调用似乎很方便,foreach(array_chunk($array['apple'],2) as $combo){} 也是一种可能。

标签: php arrays loops multidimensional-array


【解决方案1】:

这样做:

foreach ($first_array as $first_key=>$first_val) {
    foreach ($first_val as $second_key=>$second_val){
        echo $second_val;
    }
}

这将遍历您的第一个数组。然后对于从第一个循环(即嵌套数组)中获得的每个值,再次执行 for 循环。

现在您的 $second_val 第一次是您的“关键”,第二次是“日期”。

【讨论】:

    【解决方案2】:

    如果您的“内部”数组始终包含 8 个元素,请使用外部 foreach 迭代水果和内部 for 循环:

    foreach ($array as $fruit) {
    
        for ($i == 1; $i <= 7; $i += 2) {
    
            echo $fruit[$i] . ", " . $fruit[$i-1] . "<br />";
    
        } // for
    } // foreach
    

    【讨论】:

      【解决方案3】:

      我会用 array_chunk 来做这样的事情,可能是最小和最干净的代码。

      foreach (array_chunk($arr['apple'], 2) as $row) {
          echo "['$row[1]', $row[0]],<br />";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 2012-04-21
        相关资源
        最近更新 更多