2012-05-26 11 views
11

phpカウンタの関数に関する提案が必要です。 00001、または00123として5桁の数字を持つ関数はありますか?この数字はランダムではなく、前のフィールドの値を増やす必要があります。PHPで0000から始まる数字を増やす

数値が$ n = '00001'の場合、1つ増えて2でなく00002を得る関数がありますか?

1最初パラメータ)だけインクリメント古い番号$nの左側(パラメータ)に0 S(パラメータ)を添加することによりおかげ

F.
+1

先頭にゼロを付けるのはなぜでしょうか? – j08691

+0

@ j08691では、intを使用し、この形式で表示する必要があるときにパッドを使用することを提案しています。 –

+0

...既にゼロが付いている文字列で始める場合、$ new = str_pad(ltrim($ old、 '0')+ 1,5、 '0'、STR_PAD_LEFT); '先頭に0がある場合、文字列を整数に直接変換すると、期待した結果が得られない場合がありますが、これは8進数として扱うことができます。 PHPの '++'インクリメント演算子を過小評価しないでください。これは非常に巧妙で、[この例](http://codepad.org/joxh9qoR)のように数値だけでなくアルファにも対処できます – DaveRandom

答えて

26
$n2 = str_pad($n + 1, 5, 0, STR_PAD_LEFT); 

使用str_pad()長さが5になるまで(パラメータ)。

+0

私は必要なものを正確に!ありがとう! – user1103633

2

インデックスに先行ゼロを追加するには、str_pad()関数が必要です。サークル内$indexあなたの増分インデックス、$new_indexは先行ゼロを使用してインデックスがある

$new_index = str_pad($index, 5, "0", STR_PAD_LEFT); 

。代替案として

3
$number = 1; 
$number++; 
echo str_pad($number, 5, "0", STR_PAD_LEFT); //00002 
4

、あなたが興味を持っている場合には、あなたはかなり簡単に特定の数に0の上にしてパッドにこれをsprintfのを使用することができます。

$numbers = array(0,1,11,111,1111,11111,11111); 
$padded = array(); 
foreach($numbers as $num) 
    $padded[] = sprintf('%1$05d', ++$num); 

print_r($padded); 

ほとんどの場合、PHPには同じことを行う方法が多数あります。 :)

関連する問題