【问题标题】:How to iterate over a multidimensional array?如何遍历多维数组?
【发布时间】:2013-03-25 07:44:48
【问题描述】:

我有这样的数组。这个数组是动态创建的

 Array
 (
  [Data NotUploading] => Array
    (
        [items] => Array
            (
                [0] => Array
                    (
                        [date] => 2013-04-02
                        [issue_id] => 1
                        [phone_service_device] => A
                        [phone_service_model] => 
                        [phone_service_os] => 
                        [phone_service_version] => 
                        [issue_name] => Data NotUploading
                    )

                [1] => Array
                    (
                        [date] => 2013-04-02
                        [issue_id] => 1
                        [phone_service_device] => I
                        [phone_service_model] => 
                        [phone_service_os] => 
                        [phone_service_version] => 
                        [issue_name] => Data NotUploading
                    )



            )

    )

[Battery Problem] => Array
    (
        [items] => Array
            (
                [0] => Array
                    (
                        [date] => 2013-04-03
                        [issue_id] => 3
                        [phone_service_device] => I
                        [phone_service_model] => 
                        [phone_service_os] => 
                        [phone_service_version] => 
                        [issue_name] => Battery Problem
                    )

            )

    )
)

我需要做的是使用 2 个foreach 或 1 个 foreach 和 1 个 for 循环,这样我就可以获得我这样做的每个日期值

 foreach($gResultbyName  as $key1 => $rec){
         for($j = 0;$j<count($rec);$j++ ){
             echo $rec['items'][$j]['date']; 
         }
     }

但它唯一检索 2013-04-02 和 2013-04-03 是数据 NotUploading 的 0 索引日期和电池问题的 0 索引日期。基本上我需要比较每个值和其他东西,但我不能得到每个日期值。

原谅我的无知,但我尝试了很多:(

【问题讨论】:

    标签: php loops multidimensional-array foreach iteration


    【解决方案1】:

    您的 for 循环循环 count($rec) 次,但应该循环 count($rec['items'])

    【讨论】:

      【解决方案2】:

      试试这个:

      foreach ($data as $d)
      {
          foreach($d['items'] as $item)
          {
              echo $item['date'];
          }
      }
      

      【讨论】:

        【解决方案3】:

        这应该将日期加载到按问题名称排序的数组中。您可以单步执行它们以进行进一步处理。

        $dates= array();
        foreach ($gResultbyName AS $events){
            foreach ($events['items'] AS $item){
                $dates[$item['issue_name']][] = $item['date'];
            }
        }
        var_dump($dates);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-03
          • 2012-04-16
          • 2013-08-15
          • 1970-01-01
          相关资源
          最近更新 更多