我需要PHP方面的帮助,我尝试过循环,但这并不是我所需要的,至少,我无法使其按需运行。
这个想法是得到给定数量的$step = 12;
和一个$value_to_check = 30;
并得到结果$final
,在这种情况下应该是:2
。必须每步自动添加1
来计算结果,第一步始终是0
。
一些例子:
如果
$value_to_check
在0到11之间(步长为12),则$final
为0
如果
$value_to_check
在12到23之间(步长为24),则$final
是1
如果
$value_to_check
在24到35之间(步长为36),则$final
是2
依此类推,直到
$value_to_check
在$step
内匹配
这是我尝试过的循环之一,但由于需要而无法正常工作。
for ($i = 0; $i <= 1000; $i++) {
if ($i % 12 === 0) {
$final = 1;
} else if ($i % 24 === 0) {
$final = 2;
}
}
有人可以帮助我吗? 预先谢谢你。
答案 0 :(得分:2)
您可以只使用除法和整数舍入。
AttributeConverter
所以代码看起来像
0/12 = (int)0 => 0
1/12 = (int)1/12 => 0
12/12 = (int)12/12 => 1
...
编辑:使用建议的功能$finals = [];
for ($i = 0; $i <= 1000; $i++) {
$finals[] = intdiv($i, 12);
}
print_r($finals);
,但需要使用intdiv
答案 1 :(得分:1)
如果$final
是您的$value_to_check
所在的“页面”,则基于$value
echo floor($value_to_check / $step);
无需循环