2013-01-25 34 views
-2

在這裏,我已經定義我的月份名稱數組如何月份名稱數組轉換爲數字陣列

$months = array(1 => 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); 

下面是我的代碼迴路throgh它在下拉獲取月份名稱。

<tr> 
    <td>Period From:<span id="star">*</span> 

     <select name="monthfrom" id="monthfrom" style="width:60px"> 
      <option value="Month">Month</option> 
      <?php 
      foreach ($months as $value) { 
       echo '<option value="' . $value . '">' . $value . '</option>\n'; 
      } 
      ?> 
     </select> 
    </td> 
</tr> 

刪除後,我想在下拉列表中的月份名稱,但值應該是一個兩位數的月份數(與前導零)。

+0

可以打印array_keys –

+1

去看看的foreach()文檔的答案就在那裏。或者讓下面的用戶提供答案,以便您永遠不會學習 – 2013-01-25 06:41:12

回答

3
foreach ($months as $key=>$value) { 
    printf('<option value="%02d">%s</option>', $key, $value); 
} 
+0

我想要01,02格式的月份名稱,但它的格式爲1,2。 – user1033199

+0

@ user1033199你應該在你的問題中指定。無論如何''printf('',$ key,$ value)' – Phil

+0

我修改了兩位數的月份。 –

0

除了使用$key=>$value,還可以使用一個計數器,用於確定相應月份的數值:

$x = 1; 

foreach ($months as $value) { 
    echo '<option value="' . $x . '">' . $value . '</option>\n'; 
    $x++; 
} 
+0

這些值都是分開的。 '1'=>'Jan'似乎將數字數組索引放在'1'而不是'0'(順便說一句) – Phil

+0

剛剛發現第二眼。 – RobB

0

可以使用foreeach像

foreach (array_expression as $key => $value) 
    statement 

from manual foreach ¶

所以現在你可以通過

foreach ($months as $key=>$value) { 
    echo '<option value="' . $key . '">' . $value . '</option>\n'; 
} 
0

它會幫助你。試試這個,

$months = array('1' => 'Jan', '2'=>'Feb', '3'=>'Mar', '4'=>'Apr', '5'=>'May', '6'=>'Jun', '7'=>'Jul', '8'=>'Aug', '9'=>'Sep', '10'=>'Oct', '11'=>'Nov', '12'=>'Dec'); 

而且你的選擇框應該是,

<select name="monthfrom" id="monthfrom" style="width:60px"> 
         <option value="Month">Month</option> 
         <?php 
         foreach ($months as $key=> $value) { 
          echo '<option value="' . $key . '">' . $value . '</option>\n'; 
         } 
         ?> 
         </select> 
+0

我明白了。非常感謝。 – user1033199

相關問題