使用str_pad(PHP)增加数字

时间:2014-07-17 17:22:50

标签: php string increment

我正在创建一个以1001开头的递增数字。如果数字变为1001,1002,1003 ......当它达到10时,它的格式是1010还是10010?我需要它按顺序排列并且是1010并且当它达到100,1100时。

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

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

print_r($unique);

3 个答案:

答案 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变为010100变为100

答案 1 :(得分: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显然不会截断字符串以匹配指定的大小。

答案 2 :(得分:0)

使用您的代码,它将是10010

看起来你正在使它变得比它需要的更复杂。为什么不从$number = 1001开始并将其递增然后将其转换为字符串?

$number = 1001;
$number++;

$unique = strval($number);

print_r($unique);