我正在创建一个以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);
答案 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
变为001
,10
变为010
,100
变为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);