2012-09-28 33 views
-4

让我解释一下数组波纹管:PHP数组,获取循环索引信息

1,2和3代表星期一,星期二和星期三。

13,14和15是月的日子。

和15:00 - 16:20(..)是电影将要显示的时间。

含义13日星期一从下午3点到下午4:20你可以看“蝙蝠侠”。

同样在13日星期一下午6点10分到7点30分,你可以看“苦难”......等等。

$myarray 
: array = 
    1: array = 
    13: array = 
     15:00 - 16:20: array = 
     Movie: string = Batman     
     18:10 - 19:30: array = 
     Movie: string = Misery     
    2: array = 
    14: array = 
     15:00 - 16:20: array = 
     Movie: string = The Avengers     
     16:20 - 17:50: array = 
     Movie: string = The Hours     
    3: array = 
    15: array = 
     18:10 - 19:30: array = 
     Movie: string = Gladiator 

能否请你帮我回音此阵,所以你可以看到它的信息按以下格式?:

Monday - 13 
15:00 - 16:20 - Batman 
18:10 - 19:30 - Misery 
Tuesday – 14 
15:00 - 16:20 - The Avengers     
16:20 - 17:50 - The Hours 
Wednesday – 15 
8:10 - 19:30 - Gladiator 

非常感谢!

+3

你的阵列是无效的PHP的格式。 '16:20 - 17:50'应该是关键吗?即你可以用'$ myarray [1] [13] ['15:00 - 16:20']'来获取array(“Movie”=>“Batman”)'(我不希望!我很抱歉,我不明白你使用的符号。 –

+0

你可以添加确切的数组 – Baba

回答

0

我对数组的真实布局做了一个假设,下面将创建一个$weekDays数组来映射一个整数和一周中的某一天(我定义了键,以便您可以随时移动它们):

$weekDays = (1=>'Monday', 2=>'Tuesday', 3=>'Wednesday', 4=>'Thursday', 5=>'Friday', 6=>'Saturday', 7=>'Sunday'); 

// loop through each week-day in the array 
foreach ($myarray as $weekDay => $dates) { 
    // loop through each "movie date" in the current week-day block 
    foreach ($dates as $monthDate => $movies) { 
     // output the day-of-the-week and the date-of-the-month 
     echo $weekDays[$weekDay] . ' - ' . $monthDate . '<br />'; 

     // loop through all of the movies for the current date-of-the-month 
     foreach ($movies as $movieTime => $movie) { 
      // output the movie's time and name 
      echo $movieTime . ' - ' . $movie . '<br />'; 
     } 
    } 
} 

这是假设在你的榜样阵列真的格式为:

$myarray = array(
    1 => array(
     13 => array(
      '15:00 - 16:20' => array(
       'Movie' => 'Batman' 
      ), 
      '18:10 - 19:30' => array(
       'Movie' => 'Misery' 
      ) 
     ), // ... can repeat 
    ), // ... can repeat 
); 
+0

谢谢! – user523129

+0

@ user523129没问题,很高兴它的作品! – newfurniturey

0

你可以试试下面的下面的代码:See Demo

$myarray = array(
    1 => array(
     13 => array(
      "15:00 - 16:20" => array(
       "Movie" => " Batman" 
      ), 
      "18:10 - 19:30" => array(
       "Movie" => " Misery" 
      ) 
     ) 
    ), 
    2 => array(
     14 => array(
      "15:00 - 16:20" => array(
       "Movie" => " The Avengers " 
      ), 
      "16:20 - 17:50" => array(
       "Movie" => " The Hours " 
      ) 
     ) 
    ), 
    3 => array(
     15 => array(
      "18:10 - 19:30" => array(
       "Movie" => " Gladiator" 
      ) 
     ) 
    ) 
); 


$days = array(1 => 'Monday',2 => 'Tuesday',3 => 'Wednesday'); 

echo "<pre>"; 
foreach ($myarray as $key => $value) { 
    foreach ($value as $valueKey => $info) { 
     echo $days[$key], " - ", $valueKey, PHP_EOL; 
     foreach ($info as $infoKey => $infoValue) { 
      echo $infoKey, " - ", $infoValue['Movie'], PHP_EOL; 
     } 
     echo PHP_EOL; 
    } 
} 

输出

Monday - 13 
15:00 - 16:20 - Batman 
18:10 - 19:30 - Misery 

Tuesday - 14 
15:00 - 16:20 - The Avengers 
16:20 - 17:50 - The Hours 

Wednesday - 15 
18:10 - 19:30 - Gladiator