我有这样的数组
$group=[['abc','cde','01/03/2019','01/05/2019'],['123','456','01/23/2019','01/30/2019']];
我想按以下4个字段插入数据库:
field1 field2 field3 field4
abc cde 01/03/2019 01/05/2019
123 456 01/23/2019 01/30/2019
我尝试以下代码:
for($j=1;$j<count($groups);$j++){
for ($k=0; $k < count($groups[$j]) ; $k++) {
$insert = array(
'activity' => $groups[$j][$k],
'person' => $groups[$j][$k],
'startdate' => $groups[$j][$k],
'finishdate' => $groups[$j][$k]
);
DB::table('test_tbl')->insert($insert);
}
}
任何解决方案,谢谢您
答案 0 :(得分:1)
我认为在这种情况下,最简单的方法就是对索引进行硬编码。
像这样:
for($j = 0; $j < count($groups); $j++){
$insert = array(
'activity' => $groups[$j][0],
'person' => $groups[$j][1],
'startdate' => $groups[$j][2],
'finishdate' => $groups[$j][3]
);
DB::table('test_tbl')->insert($insert);
}
在FOR循环中,索引计数器$j
通常从0开始。因此,请谨慎操作。
答案 1 :(得分:1)
foreach怎么样?
foreach ($group as $item){
$insert = array(
'activity' => $item[0],
'person' => $item[1],
'startdate' => $item[2],
'finishdate' => $item[3]
);
DB::table('test_tbl')->insert($insert);
}
}
答案 2 :(得分:1)
我建议您使用ForEach循环:
Composite Types
通过这种方式,您无需计算数组,而且代码也很整洁。
答案 3 :(得分:0)
array_map(function($item){
DB::table('table_name')->insert([
'activity' => $item[0],
'person' => $item[1],
'startdate' => $item[2],
'finishdate' => $item[3]
]);
}, $groups);