问题标题可能有点混乱。但这是我的情况。
我希望我的结果像:
0000000000
0000000001
0000000002
0000000003
0000000004
0000000005
0000000006
0000000007
0000000008
0000000009
0000000010
0000000001
0000000011
0000000012
0000000013
0000000014
0000000015
0000000016
0000000017
0000000018
0000000019
0000000002
0000000020
0000000021
0000000022
0000000023
...
0000000003
...
0000000004
...
我可以通过这样做得到第一个数字:
for ($i = 1; $i<=10; $i++){
$nr=str_pad($i, 10, "0", STR_PAD_LEFT);
echo $nr.'<br>';
}
但是我如何得到中间的数字呢?
任何想法?
由于
编辑:第二行数字基于10乘10计数。
如此。第一个记录下面会有10个其他记录,第二个记录会另外记录10个,依此类推。
我已尝试使用$floor= floor($i/10);
并将其添加到此处的第二组记录中:$nr=str_pad($floor, 10, "0", STR_PAD_LEFT);
答案 0 :(得分:3)
我不太明白你想做什么。但一种可能的解决方案是:
for ($i = 1; $i < 100; $i++){
if ($i % 10 == 1)
echo str_pad(($i-1)/10, 10, "0", STR_PAD_LEFT) . "<br />\n";
echo ' '.str_pad($i, 10, "0", STR_PAD_LEFT) . "<br />\n";
}
根据您的问题,使用两个周期可能更适合您:
for ($i = 0; $i < 10; $i++){
echo str_pad($i, 10, "0", STR_PAD_LEFT) . "<br />\n";
for ($j = 1; $j <= 10; $j++) {
echo ' '.str_pad($i*10+$j, 10, "0", STR_PAD_LEFT) . "<br />\n";
}
}
答案 1 :(得分:0)
这看起来像家庭作业,但我会按照描述更改你的循环来迭代次要号码,然后使用MOD(http://php.net/manual/en/internals2.opcodes.mod.php)之类的测试来检查你想要发出第一级的那些时间分组。
所以你调整你的str_pad行缩进以及左边的垫子为0,并在循环顶部附近添加一个lne来检查是否($ i%10 == 0)(也就是说,如果它可被整除10没有余数)。
请注意,这可能不是最快,也不是最优雅的方式。