首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有多个数组的Foreach循环

具有多个数组的Foreach循环
EN

Stack Overflow用户
提问于 2010-08-03 16:33:00
回答 7查看 15.1K关注 0票数 4

,这就是我想要的:

代码语言:javascript
运行
复制
foreach($_POST['something'] as $something){
    foreach($_POST['example'] as $example){
        $query = mysql_query("INSERT INTO table (row, row2) VALUES ('{$something}','{$example}')");
    }

}

$_POST['something']$_POST['example']是输入的数组。

name="something[]"name="example[]".

问题:

这样,我将两次将数据发送到数据库。因此,我需要一个解决方案,我可以循环槽2阵列,而不是看到数据两次。

编辑

  • 这两个数组的大小总是相同的。
  • 在mysql_query中,我将有其他元素,而不仅仅是row、row2,这些元素都是静态的,没有任何数组。
EN

Stack Overflow用户

发布于 2010-08-03 16:41:51

代码语言:javascript
运行
复制
$cnt = count($_POST['something']);
$cnt2 = count($_POST['example']);

if ($cnt > 0 && $cnt == $cnt2) {
    $insertArr = array();
    for ($i=0; $i<$cnt; $i++) {
        $insertArr[] = "('" . mysql_real_escape_string($_POST['something'][$i]) . "', '" . mysql_real_escape_string($_POST['example'][$i]) . "')";
    }

    $query = "INSERT INTO table (column, column2) VALUES " . implode(", ", $insertArr);
    mysql_query($query) or trigger_error("Insert failed: " . mysql_error());
}

这是另一种方法。这种方法使用扩展的插入,因此应该更高效、更快,并且出于安全考虑使用mysql_real_escape_string。计数检查只是确保两个字段都有相同的计数,如果没有,我认为这是一个错误。如果允许它们有不同数量的字段,您只需使用isset()函数来检查,以确保它们包含一个值。

编辑

当然,这是假设,您不希望对所有的“示例”值进行迭代,并将其分配给每个值。如果你想要那样的话,这是一个小小的改变。

添加了插入数组测试,如果没有不需要更新的元素。谢谢Gumbo的支持。

票数 1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3398618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档