我知道我可以像这样整个整数进行正常循环
for($i=0;$i<10;$i++)
{
echo $i;
}
问题:
我想循环一个循环而不是整数,但是浮动次(45分钟)。我希望结果如下:
0.45
1.30
2.15
3.00
3.45
...
PHP中是否有任何辅助函数来实现?
答案 0 :(得分:12)
阅读评论并发现您确实想要使用时间,您甚至可以在for循环中使用DateTime
对象
以下是一些示例代码:
for (
$d = new DateTime('00:00'), // Initialise DateTime object .
$i = new DateInterval('PT45M'); // New 45 minute date interval
$d->format('H') < 10; // While hours (24h) less than 10
$d->add($i) // Add the interval to the DateTime object
)
{
echo $d->format("H:i\n");
}
答案 1 :(得分:2)
你可以简单地在循环中使用浮点数。循环的最后部分中的$i++
表示将计数器递增1
。只需将其更改为0.45
,即可完成。
for($i=0;$i<10;$i=$i + 0.45)
{
echo $i;
}
//编辑
正如许多人所指出的,浮点精度存在固有问题。上面的示例应该适用于小数字$i < 100
,但是当数字变大时可能会出现问题。
答案 2 :(得分:1)
for($i=0;$i<10;$i += 0.45)
{
echo $i;
}
这样的事情?
答案 3 :(得分:0)
我不会依赖浮点数。理由是四舍五入。
您通常使用的是int,然后除以。
for($i=0, $j=0; $i < $MAX; $i += 45, $j = $i / 100)
{
echo $j;
}
答案 4 :(得分:0)
您可以简单地使用
for($i=0.0;$i<10.0;$i=$i+0.45)
{
echo $i;
}
答案 5 :(得分:0)
我不确定我是否会使用浮点值来控制循环本身,特别是考虑到它们不精确的倾向: - )
由于您似乎考虑了公式,因此您只需在循环中使用公式:
for ($i = 0; $ < 10; $i++) {
$num = 0.45 + $i * 0.85;
echo $num;
}
这允许使用整数控制循环,并简单地为您提供基于该整数的浮点值。
答案 6 :(得分:-1)
也许是这样的:
for ($i=1; $i<=10; $i++) {
echo $i * 0.45."<br />";
}