对于循环不从2开始,因此错过了第二个字段

时间:2016-02-09 20:47:37

标签: php laravel for-loop laravel-5 iteration

我有一个大表单,当提交到数据库时,它需要拆分为奇数和偶数(基于他们的HTML名称),所以我可以对它们进行计算。

总共有120个HTML Input个字段,所以60个字段和60个字段。

迭代它们的for loops是:

  $h=0; $o=0;

    for($i=1; $i<=119; $i+=2)
    {
      $h = $h + Input::get($i);
    }

    for($i=2; $i<=120; $i+=2)
    {
      $o = $o + Input::get($i);
    }

我发现循环的奇数正常工作,但即使第二个循环从2开始,它也会跳过添加Input::get($i);并转移到第4个输入。

如果我回显odd for循环,则输出(所有输入值均为1):

for($i=2; $i<=120; $i+=2)
{
  echo $i;
  echo (",");
  $o = $o + Input::get($i);
  echo (Input::get($i));
}
  

2,14,16,18,110,112,114,116,118,

正如您所看到的,它没有从第二个输入字段中获取“1”值。

任何帮助,为什么会这样做将不胜感激。

2 个答案:

答案 0 :(得分:1)

你不需要两个循环来完成这个,使用模数学函数来确定在除以2(表示偶数)时是否有0的余数,试试这个:

 for($i=0; $i<=120; $i++)
 {
   if($i%2 == 0) //even
      $o = $o + Input::get($i);
   else //odd
      $h = $h + Input::get($i);
 }

答案 1 :(得分:0)

你应该制作一个从1到120迭代的循环。然后使用模数运算符($ a%$ b)测试计数器是否为奇数/偶数。

即。如果$ a%2 = 0则该值为偶数,否则为奇数。