【问题标题】:PHP: Multidimensional arrayPHP:多维数组
【发布时间】:2011-08-03 13:08:22
【问题描述】:

我有一个如下所示的数组:

Array ( [today] => Array ( [0] => Array ( [hour] => 08/03/11 00:00)
                           [1] => Array ( [hour] => 08/03/11 11:00)
                           [n] => Array ( [hour] => 0xxxxxxxxx)
                         )
        [yesterday] => Array ( [0] => Array ( [hour] => 08/02/11 00:00)
                               [1] => Array ( [hour] => 08/02/11 11:00)
                               [n] => Array ( [hour] => 0xxxxxxxxx)
                             )
)

以此类推,今天有很多小时,昨天也有很多小时。

现在,我有点不知道如何在 foreach 中获得今天和昨天的相同时间。例如,我有:

foreach ($Array as $key => $data) { 

//display today's hour //display yesterday's hour value

如何逐行获取所有这些值?

【问题讨论】:

    标签: php multidimensional-array foreach


    【解决方案1】:

    你必须嵌套 Forech

    $array = array(
      'today'=>array(
        0 => Array ( 'hour' => '08/03/11 00:00'),
        1 => Array ( 'hour' => '08/03/11 11:00'),
        'n' => Array ( 'hour' => '0xxxxxxxxx')
      ),
      'yesterday'=>array(
        0 => Array ( 'hour' => '08/03/11 00:00'),
        1 => Array ( 'hour' => '08/03/11 11:00'),
        'n' => Array ( 'hour' => '0xxxxxxxxx')
      )
    );
    

    SO 上面有那个数组

    foreach($array as $key => $arr){
      foreach($arr as $a_key => $a_arr){
        foreach($a_arr $b_key => $b_str){
          var_dump($b_str);
        }
      }
    }
    

    这将产生 6 个单行的小时值,每个行

    我怎么认为你在那里设置了一个愚蠢的数组,它只是为了好玩而浪费内存,

    应该是 - 保存相同的数据,但您的数组没有第二深度

    $array = array(
      'today'=>array(
        0 => '08/03/11 00:00',
        1 => '08/03/11 11:00',
        'n' => '0xxxxxxxxx'
      ),
      'yesterday'=>array(
        0 => '08/03/11 00:00',
        1 => '08/03/11 11:00',
        'n' => '0xxxxxxxxx'
      )
    );
    

    【讨论】:

      【解决方案2】:

      多么奇怪的数组。试试这个:

      foreach ($Array as $key => $data) {
          foreach($data as $v){
              echo $key."'s hour: ".$v[hour];
          }
      }
      

      【讨论】:

        【解决方案3】:

        如果 count(array[today]) == count(array[yesterday]) 那么这可能会有所帮助:

        for ($i=0,$cnt=count(array['today']); $i<$cnt; $i++)
          echo $Array['today'][$i]['hour'] . ' : ' $Array['yesterday'][$i]['hour']
        )
        

        【讨论】:

        • 数组也应该是很好的索引(没有跳过的索引)
        【解决方案4】:
        foreach($array['today'] as $k=>$v){
            //use $v
            //use $array['yesterday'][$key]
            //ex.
            print 'today'.$v['hour'].'; yesterday '.$array['yesterday'][$k]['hour'].EOLN;
        }
        

        【讨论】:

        • 如果你没有设置它应该是$k,这对你的引用$key不起作用
        猜你喜欢
        • 2011-09-20
        • 2022-01-07
        • 2013-03-04
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多