2013-01-25 63 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

相关问题