2010-12-14 50 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