2010-12-14 78 views
0

我有一个数组当前元素的关键关联数组:如何获取这是一个数组

Array ( 
     [0] => Array ([2006] => Array ([0] => 12)) 
     [1] => Array ([2004] => Array ([0] => 12 [1] => 6)) 
) 

如何获得今年这样我就可以生成folllowing使用无序列表

2006 
    December 
2004 
    December 
    June 
+0

http://php.net/manual/en/function.array-keys.php可能会帮助你 – mrwooster 2010-12-14 16:27:44

+1

为什么以这种方式组织你的数据? – 2010-12-14 16:28:04

+0

尝试将数据放入数据库中。 – thejh 2010-12-14 16:29:49

回答

0

你可以试试:

$arr = Array(
    0 => Array(
    2006 => Array(
     0 => 12 
    ) 
), 
    1 => Array(
    2004 => Array(
     0 => 12, 
     1 => 6 
    ) 
) 
) ; 

echo "<ul>\n"; 
foreach ($arr as $elem) { 
    foreach ($elem as $year => $months) { 
    echo "<li>$year\n<ul>\n"; 
    foreach ($months as $num => $month) { 
     echo strftime("<li>%B</li>\n", mktime(0, 0, 0, $month)); 
    } 
    echo "</ul>\n</li>\n"; 
    } 
} 
echo "</ul>\n"; 
0

敢肯定,你可以使用

foreach($key, $value in $array) { 
} 

还是相当类似的东西。自从我使用PHP以来已经有一段时间了。

+0

foreach($ array as $ key => $ value){ – 2010-12-14 16:30:17

+0

不,这是错误的。要循环访问一个简单的关联数组,它就是'foreach($ array as $ key => $ value){}'。 Python已经宠坏了你,我的朋友:D – 2010-12-14 16:31:09

1

这是你的无序列表:

foreach ($array as $year => $months) 
    { 
     printf('%04d: <ul>', $year); 

     foreach ($months as $m) 
      { 
       $tm = mktime(0,0,0,$m - 1,1); 
       print strftime('<li>%B</li>', $tm); 
      } 

     print '</ul>'; 
    } 

假设存储的月份是1月为12和十二月。因此$m - 1