PHP: многомерный массив - PullRequest
       6

PHP: многомерный массив

0 голосов
/ 03 августа 2011

У меня есть массив, который выглядит следующим образом:

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

Как можно получить значения для всех из них, строка за строкой?

Ответы [ 4 ]

2 голосов
/ 03 августа 2011

ты должен гнездиться 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')
  )
);

ТАК с этим массивом выше

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

Это произведет 6 отдельных строк значения часа для каждой

Как бы я ни думал, что у тебя там настроен массив daft, просто тратится впустую память для удовольствия,

Должно быть - содержит те же данные без 2-й глубины для вашего массива

$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'
  )
);
1 голос
/ 03 августа 2011

если count (массив [сегодня]) == count (массив [вчера]), то может быть это поможет:

for ($i=0,$cnt=count(array['today']); $i<$cnt; $i++)
  echo $Array['today'][$i]['hour'] . ' : ' $Array['yesterday'][$i]['hour']
)
1 голос
/ 03 августа 2011

Что за странный массив. Попробуйте это:

foreach ($Array as $key => $data) {
    foreach($data as $v){
        echo $key."'s hour: ".$v[hour];
    }
}
0 голосов
/ 03 августа 2011
foreach($array['today'] as $k=>$v){
    //use $v
    //use $array['yesterday'][$key]
    //ex.
    print 'today'.$v['hour'].'; yesterday '.$array['yesterday'][$k]['hour'].EOLN;
}
...