php - array_combine 在 foreach 循环中组合数组值

标签 php arrays foreach

我正在为数组使用 foreach 循环。

我有两组数组

我想从一个 foreach 循环传递这两个数组 代码:

//getting variables from form
$lists=$_POST['list'];
$assigndue=$_POST['assign'];

//foreach loop
foreach (array_combine($lists,$assigndue) as $listitem => $due)
{
 $qqu="INSERT INTO `todolist`(`todoid`,`listdetail`,`assign`,`order`)VALUES('$todoidd','$listitem','$due','$o')";
        $ins=mysql_query($qqu);
}

一切正常,但当数组是那样时我遇到了问题 >>

Array
(
    [0] => s
    [1] => s
    [2] => s
    [3] => a
)

它返回这个查询

INSERT INTO `todolist`(`todoid`,`listdetail`,`assign`,`order`)VALUES('8','s','Select Email','1') 

INSERT INTO `todolist`(`todoid`,`listdetail`,`assign`,`order`)VALUES('8','a','Select Email','2') 

它组合数组中的“s”。

我不知道下一步该做什么,请帮我做。

最佳答案

我认为 array_combine 只会获得唯一值。

为什么你不必把它结合起来呢?只是 foreach $lists as $index => $listitem 然后在 foreach 循环中,只需添加 $due = $assigndue[$index] 如果我正确理解您的程序逻辑,它会工作得很好。

需要提及的另一件事是关于优化。 您不应该对每次插入数据库进行多次查询。 只需按照以下格式将它们组合成单个执行,

插入 todolist (COLUMNS) VALUES (ATTRIBUTE), (ATTRIBUTE)

通过将插入值子句作为 ARRAY,然后使用 join(ARRAY) 作为查询中的值子句。

如果您需要任何详细帮助,请询问。

关于php - array_combine 在 foreach 循环中组合数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237748/

相关文章:

c - 为什么我的带有 scanf 的 for 循环没有被执行?

java - 并排打印 csv 中的两个数组

php - 如何在查询中选择小时和分钟

arrays - 串叉积

c# - 确定 BLOB 列的大小

php - 如何将两个 foreach 循环合并为一个

c# - items.IndexOf 不打印位置

javascript - 如何创建接口(interface)?

javascript - HTML/PHP 内使用 ZinoUI 的简单用户界面

php - 如何检查模拟对象的方法不是仅使用特定参数调用的?