我有一个多维数组,其结构类似于
[nmbr] => Array
(
[0] => u
[1] => t
)
[jmlh] => Array
(
[0] => 4
[1] => 6
)
我希望将其插入到一个看起来像
的数据库中id nmbr jmlh
1 u 4
2 t 6
我尝试使用for循环,但它只检测第一个数组,第二个数组未插入数据库。
这是我的循环
$namabarang = $_POST['nmbr'];
$jumlah = $_POST['jmlh'];
for ( $i = 0; $i<$total; $i++)
{
$nmbr = $namabarang[$i];
$jmlh = $jumlah[$i];
$data = array(
'id_tender' => $primary_key,
'nmbr' => $nmbr,
'jumlah' => $jmlh
);
$this->db->insert('tb_tender_barang', $data);
}
答案 0 :(得分:1)
如果两个阵列的大小相同。一个简单的for循环就足够了。在当前代码中,您没有检查在循环中使用的任何一个的大小。考虑这个例子:
// this will just strictly work if they have the same size!
$namabarang = $_POST['nmbr'];
$jumlah = $_POST['jmlh'];
for($i = 0, $size = count($jumlah); $i < $size; $i++) {
$data = array('id' => $i+1, 'nmbr' => $nmbr[$i], 'jmlh' => $jmlh[$i]);
$this->db->insert('tb_tender_barang', $data);
}
旁注:为什么需要在表格中手动插入
id
?让AUTO INCREMENT
为您处理。