【发布时间】:2017-04-16 05:31:43
【问题描述】:
我正在尝试使用for loop 遍历以 0 开头的 8 个数字。例如,第一个数字是:00000000,我想显示接下来的 5 个数字。
到目前为止,我设法完成了某事。像这样:
<?php
$start = 00000000;
$number = 5;
for ($i = $start; $i < $start + $number; $i++) {
$url = sprintf("http://test.com/id/%08d", $i);
echo $url . "\r\n";
}
?>
结果:
http://test.com/id/00000000
http://test.com/id/00000001
http://test.com/id/00000002
http://test.com/id/00000003
http://test.com/id/00000004
这个例子一切都很好,但是,问题从这样一个例子开始:
<?php
$start = 00050200;
$number = 5;
for ($i = $start; $i < $start + $number; $i++) {
$url = sprintf("http://test.com/id/%08d", $i);
echo $url . "\r\n";
}
?>
for 循环产生:
http://test.com/id/00020608
http://test.com/id/00020609
http://test.com/id/00020610
http://test.com/id/00020611
http://test.com/id/00020612
虽然我期待:
http://test.com/id/00050200
http://test.com/id/00050201
http://test.com/id/00050202
http://test.com/id/00050203
http://test.com/id/00050204
【问题讨论】:
-
在 PHP 中,以
0开头的数字是八进制。 -
只需初始化 $start=0,因为 sprintf 正在为您进行格式化。
标签: php loops for-loop iteration