我正在尝试构建一个获取循环迭代当前百分比的脚本。
我有:
<?php
$counter = 0;
$total = 100;
foreach($key as value) {
$counter = $counter + 1;
//looping here
$percentage = $counter/total;
}
在我的案例中,循环内输出5次迭代
0.01
0.02
0.03
0.04
0.05
我需要输出
20
40
60
80
100
执行类似当前百分比完成的操作。
更随机的exmaples 对于10个循环应
10
20
30
40
50
60
70
80
90
100
100循环
1
2
.
.
100
6循环
16.6
//brain damaged
对不起noob数学php的问题,但我今天在迷雾中没有几天。谢谢你,非常感谢。
答案 0 :(得分:3)
首先,您必须获得总迭代次数。 count()在这种情况下有所帮助。
<?php
$counter = 0;
$total = count($yourArray);
// ...
// inside the loop
$counter++;
$percentage = $counter/$total;
将0.xx
转换为x %
留给读者练习。
答案 1 :(得分:1)
要计算百分比,您可以获取当前值并将其除以总计,然后将该值乘以100,然后将其四舍五入。我也采取底价,因此99.7%不会达到100,因为它尚未真正完成。
for($i=1;$i<=count($yourArray);$i++) {
$percentage = floor(round( (($i / total) * 100), 1 ));
}
答案 2 :(得分:0)
将数组的总长度存储在变量中,并使用它来计算百分比。请注意您使用$
为变量添加前缀。此外,您可能希望更恰当地命名变量 - 数组不是键。
$counter = 0;
$length = count($array);
foreach ($array as $value) {
$counter++;
$percentage = $counter / $length;
}
答案 3 :(得分:0)
你可以用这种方式完成你的要求
$counter = 0;
$length = count($array);
foreach ($array as $value) {
$counter=$counter+1;
for ($stepvvx = 10; $stepvvx <= 100; $stepvvx=$stepvvx+10)
{
if ($counter==intval(($length*$stepvvx)/100)){
echo "<br>$stepvvx %";
}
# do your task here
}
答案 4 :(得分:-1)
你需要这样做($ total / $ iterations)* $ counter,如下代码:
$counter = 0;
$total = 100;
$iterations = count($key);
foreach($key as value) {
$counter++;
$percentage = (($total/$iterations) * $counter)/100;
}