我有一个数组(下面),我需要从中执行多个MySQL插入。
KEY是需要插入的值,VALUE是需要插入的次数。
例如,在第一次迭代中,我希望插入" 1"十二次。在第二次迭代中,我希望插入" 2"二十八次。
Array ( [1] => 12 [2] => 28 [3] => 21 [4] => 9 [5] => 0 )
现在,我知道最好使用一个查询来插入多行,而不是单独的INSERT查询,所以我希望下面的代码能够反映这一点。
我的问题是:如何迭代键VALUE,而不是单个键(虽然我也需要遍历键)?
$insert = array();
foreach ($ret AS $key => $item) // $ret is the array above
{
$insert[] = "('". mysql_real_escape_string($item) . "'," . $key . "')";
// This insert query should repeat only as many times as each array value
}
echo "INSERT INTO table (id, key) VALUES " . implode(',', $insert);
答案 0 :(得分:2)
你需要在foreach中运行第二个循环
foreach ($ret as $key => $item) {
for($i=1; $i<=$item; $i++) {
$insert[] = "('". mysql_real_escape_string($item) . "'," . $key . "')";
}
}
并确保您的ID在表格中不是主要唯一。
答案 1 :(得分:0)
使用函数array_fill并连接或合并结果
http://php.net/manual/en/function.array-fill.php
Concat是$ array1 + $ array2
Array_merge是