2012-01-10 71 views
0

我只是一個初學者在PHP中。我正在嘗試使用下面的代碼打印幾個月的數組。月格式php

<?php 
$totalmonth=12; 
for($startmonth=01; $startmonth<=$totalmonth; $startmonth++) 
{ 
    $montharr[]=$startmonth; 
} 
print_r($montharr); 
?> 

我的結果是Array ([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 [11] => 12)

我需要的結果應該是這樣的

[0] => 01 [1] => 02 

我怎樣才能做到這一點?

回答

3

使用str_pad。

<?php 
$totalmonth=12; 
for($startmonth=1; $startmonth<=$totalmonth; $startmonth++) 
{ 
    $montharr[]=str_pad($startmonth, 2, "0", STR_PAD_LEFT); 
} 
print_r($montharr); 
?> 
+0

感謝。它正在工作。 – designersvsoft 2012-01-10 10:39:33

+2

@designersvsoft:我建議你將它標記爲已接受! – joar 2012-01-10 10:41:54

0

PHP有很多日期函數,可能會起到更好的解決方案,無論你正在努力實現的,而是一個非常快速和骯髒的方法是檢查,如果該數字較低然後10,然後在前面加上一個零:

<?php 
$totalmonth=12; 
for($startmonth=1; $startmonth<=$totalmonth; $startmonth++) 
{ 
    // Check amount 
    if($startmonth < 10) { 
     $montharr[]='0'.$startmonth; 
    } else { 
     $montharr[]=$startmonth; 
    } 
} 
print_r($montharr); 
?> 
1

你可以使用sprintf將它打印到字符串作爲zero-padded integers

實施例:

<?php 
    $month = sprintf("%02d", $month); 

由於整數,數學性質; PHP(以及大部分應用程序)將把(int)01解釋爲1。爲了保持前導零,它必須是一個字符串。

0

使用PHP內置str_pad:

<?php 
$totalmonth=12; 
for($startmonth=01; $startmonth<=$totalmonth; $startmonth++) 
{ 
    $montharr[] = str_pad($startmonth, 2, '0', STR_PAD_LEFT); 
} 
print_r($montharr); 
?> 
0

隊,將一個字符串插入,通過它含蓄地轉化成一種:

$montharr[]= "" + $startmonth;