PHP循序渐进

时间:2019-01-21 21:19:49

标签: php

我需要PHP方面的帮助,我尝试过循环,但这并不是我所需要的,至少,我无法使其按需运行。

这个想法是得到给定数量的$step = 12;和一个$value_to_check = 30;并得到结果$final,在这种情况下应该是:2。必须每步自动添加1来计算结果,第一步始终是0

一些例子:

  

如果$value_to_check在0到11之间(步长为12),则$final0

     

如果$value_to_check在12到23之间(步长为24),则$final1

     

如果$value_to_check在24到35之间(步长为36),则$final2

     

依此类推,直到$value_to_check$step内匹配

这是我尝试过的循环之一,但由于需要而无法正常工作。

for ($i = 0; $i <= 1000; $i++) {   
  if ($i % 12 === 0) {
      $final = 1;
  } else if ($i % 24 === 0) {
      $final = 2;
  }
}

有人可以帮助我吗? 预先谢谢你。

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);

无需循环