2 foreach循环提交数据三倍

时间:2017-04-02 11:14:09

标签: php

我有3个隐藏字段和3个文本字段。我需要遍历两个UPDATE数据库记录。如果我单独使用foreach循环,它会正确地发布3个值。如果我尝试一起使用它们,它似乎是文本输入值的三倍,这是一个日期。所以不要看起来像这样:

1 - 2017-04-05
2 - 2017-04-06
3 - 2017-04-07

看起来像这样:

1 - 2017-04-05
2 - 2017-04-05
3 - 2017-04-05
1 - 2017-04-06
2 - 2017-04-06
3 - 2017-04-06
1 - 2017-04-07
2 - 2017-04-07
3 - 2017-04-07

RuntimeException

2 个答案:

答案 0 :(得分:1)

假设您要发布尺寸为unit的{​​{1}}和commit_date

3

您将看到如下输出:

   foreach($_POST['commit_date'] as $commitdate) { \\ this will iterate 3
        foreach($_POST['unit'] as $units) { \\ this will iterate 9 times

            echo $units .= $commitdate . "<br/>";

        }
    }

答案 1 :(得分:1)

  

如果我单独使用foreach循环,它会正确发布3个值。如果我尝试一起使用它们,它似乎是文本输入值的三倍,这是一个日期。

那是因为你正在使用嵌套的foreach循环,这意味着对于每个外循环,内循环将被执行三次。这就是为什么你得到9个值。

相反,请使用像这样的简单for循环

$count = count($_POST['unit']);
for($i = 0; $i < $count; ++$i){
    echo $_POST['unit'][$i] .= $_POST['commit_date'][$i] . "<br/>";
}