2010-07-09 81 views
2

我試圖做一個數字(十進制)增量,看起來像一個循環中的001 002 003...123,124,並找不到一個簡單的解決方案。我現在想的是檢查數字是足夠長的時間,如果不是前綴它一些「0」。但它似乎不好。任何更好的想法?自定義風格的數字增量

謝謝。

回答

1
for($i=1;$i<1000;$i++){ 
    $number = sprintf("%03d",$i); 
    echo "$number <br />"; 
} 
1

兩個選項立刻浮現在腦海中。首先,嘗試str_pad()。它確實如你所描述的那樣。

其次,您可以使用另一個建議的sprintf()

+0

是的,這是完全正確的。在http://php.net/manual/en/function.str-pad.php有人指出,「對於數字格式(比如寫數字前導零等),sprintf比str_pad快得多。」 – phimuemue 2010-07-09 07:18:19

1

如果你不知道的各種數字多久練得(例如,它們是動態確定的,不知道他們會是什麼,直到後來的方式),你可以使用下面的代碼:

<?php 

$numbers = array(); 

for ($i = 0; $i < 2000; $i++) 
{ 
    $numbers[] = $i; 
} 

array_walk($numbers, function(&$item, $key, $len) { $item = sprintf('%0'.$len.'d', $item); }, strlen(max($numbers))); 

print_r($numbers); 

?>