我有一个类似的字符串:00030000
并且需要使用循环来增加它。
$start = "00030000";
for ($i = 1; $i < 10; $i++) {
echo $i + $start;
}
它打印这个
30001
30002
30003
30004
//...
这是可以理解的,但我怎样才能得到以下结果?
00030001
00030002
00030003
00030004
//...
使用零将其填充到您需要的长度str_pad
$start = "00030000";
for ($i = 1; $i < 10; $i++) {
$sum = $i + $start;
echo str_pad($sum, 8, "0", STR_PAD_LEFT);
}
输出:
00030001
00030002
00030003
...
您可以使用 strpad 或sprintf来获得它。
$input = "30";
echo str_pad($input, 4, "0", STR_PAD_LEFT); // produces "0030"
$start = "00030000";
$startLen = strlen($start);
for ($i = 1; $i < 10; $i++) {
echo str_pad($i + $start, $startLen, '0', STR_PAD_LEFT );
}
为了娱乐:
$start = "00030000";
$start = '_' . $start;
for ($i = 1; $i < 100; $i++) {
echo ltrim($start++, '_');
echo "\n";
}
请不要实际使用该代码。虽然它完美地工作并利用了 php 的文档功能,但它让大多数阅读它的人感到困惑(这使它成为糟糕的代码)。使用使用 str_pad() 的答案之一
$start = "00030000";
for ($i = 1; $i < 10; $i++) {
echo sprintf( "%08u\n", $i + $start );
}