0

我有一个类似的字符串:00030000并且需要使用循环来增加它。

$start = "00030000";

for ($i = 1; $i < 10; $i++) {
    echo $i + $start;
}

它打印这个

30001 
30002 
30003 
30004 
//...

这是可以理解的,但我怎样才能得到以下结果?

00030001 
00030002 
00030003 
00030004 
//...
4

5 回答 5

2

使用零将其填充到您需要的长度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
...
于 2012-08-14T22:20:35.937 回答
1

您可以使用 strpad 或sprintf来获得它。

$input = "30";
echo str_pad($input, 4, "0", STR_PAD_LEFT);  // produces "0030"
于 2012-08-14T22:22:54.910 回答
1
$start = "00030000";
$startLen = strlen($start);
for ($i = 1; $i < 10; $i++) {
    echo str_pad($i + $start, $startLen, '0', STR_PAD_LEFT );
}
于 2012-08-14T22:23:54.047 回答
1

为了娱乐:

$start = "00030000";
$start = '_' . $start;

for ($i = 1; $i < 100; $i++) {
    echo ltrim($start++, '_');
    echo "\n";
}

请不要实际使用该代码。虽然它完美地工作并利用了 php 的文档功能,但它让大多数阅读它的人感到困惑(这使它成为糟糕的代码)。使用使用 str_pad() 的答案之一

于 2012-08-14T22:31:28.810 回答
0
$start = "00030000";
for ($i = 1; $i < 10; $i++) {
    echo sprintf( "%08u\n", $i + $start );
 }
于 2012-08-14T22:35:22.920 回答