我正在为数组使用 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/