2014-07-17 84 views
0

我正在創建一個以1001開頭的遞增數字。如果數字變爲1001,1002,1003 ...當它達到10時,它將被格式化爲1010還是10010?我需要它只是去爲了和是1010,當它達到100,1100用str_pad(PHP)增加數字

$prefix = "1"; // update the prefix here 

    $number = 1; 
    $number++; 
    $unique = str_pad($number, 3, "0", STR_PAD_LEFT); 
    $unique = $prefix . $unique; 

print_r($unique); 
+2

爲什麼不從1001開始?例如。你的用例是什麼? –

+0

我不明白你在問什麼 – sjagr

回答

1

當您的計數達到10,印刷將是1010作爲數字描述here,str_pad「墊串到一定長度用另一個字符串」你可以創建一個測試用下列:

$prefix = "1"; // update the prefix here 

$number = 1; 

for ($number = 1; $number <= 100; $number++) 
{  
    $unique = str_pad($number, 3, "0", STR_PAD_LEFT); 
    $unique = $prefix . $unique;  
    print($unique."\n"); 
} 

當你的數量達到100,打印數量將1100

但是,如果你要上去1000,11000將印刷 - str_pad顯然不會截斷的字符串爲指定大小。

0

與您的代碼將是10010

它看起來像你正在使這比它需要更復雜。爲什麼不從$number = 1001開始,然後增加它,然後將它變成一個字符串?

$number = 1001; 
$number++; 

$unique = strval($number); 

print_r($unique); 
+0

這實際上是我一起去的方法。我知道我太過於複雜,謝謝。 –

1

這將是1010,但你可以很容易地測試這個自己:

$prefix = "1"; // update the prefix here 

$number = 9; 
$number++; 
$unique = str_pad($number, 3, "0", STR_PAD_LEFT); 
$unique = $prefix . $unique; 

print_r($unique); // 1010 

str_pad第二個參數指定填充。如果填充爲3,則1變爲00110變爲010,100變成100