2014-10-18 57 views
0

我有一个数组(下面),我需要执行多个MySQL插入。PHP对阵列键值执行foreach

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

可能重复foreach循环键值](http://stackoverflow.com/questions/1834703/php-foreach-loop-key-value) – 2014-10-18 16:11:14

回答

2

你需要运行的foreach

foreach ($ret as $key => $item) { 
    for($i=1; $i<=$item; $i++) { 
     $insert[] = "('". mysql_real_escape_string($item) . "'," . $key . "')"; 
    } 
} 

内第二回路,并确保你的id是不是主要的唯一在表中。

+0

谢谢你,工作,并注意到! – ButtressCoral 2014-10-18 16:49:57