>我有一个大表单,当提交给数据库时,它需要拆分为奇数和偶数(基于它们的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 个输入。
如果我回显 for 循环odd
,它会输出(所有输入值均为 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 的余数,请尝试一下:
for($i=0; $i<=120; $i++)
{
if($i%2 == 0) //even
$o = $o + Input::get($i);
else //odd
$h = $h + Input::get($i);
}
你应该创建一个从 1 到 120 迭代的循环。 然后使用模运算符($a% $b)测试计数器是否为奇数/偶数。
即,如果 $a % 2 = 0,则该值为偶数,否则它是奇数。