Php 使用laravel 5在mysql中将多维数组保存为行

Php 使用laravel 5在mysql中将多维数组保存为行,php,mysql,laravel,multidimensional-array,Php,Mysql,Laravel,Multidimensional Array,我有一个多维数组,它来自如下形式: $items = array:8 [▼ "units" => array:4 [▼ 0 => "1" 1 => "1" 2 => "1" 3 => "1" ] "article_group" => array:4 [▼ 0 => "2401" 1 => "2503" 2 => "1360" 3 => "1198" ]

我有一个多维数组,它来自如下形式:

  $items =  array:8 [▼
  "units" => array:4 [▼
    0 => "1"
    1 => "1"
    2 => "1"
    3 => "1"
  ]
  "article_group" => array:4 [▼
    0 => "2401"
    1 => "2503"
    2 => "1360"
    3 => "1198"
  ]
  "article" => array:4 [▶]
  "description_en" => array:4 [▶]
  "unit_price" => array:4 [▶]
  "discount" => array:4 [▶]
  "invoice" => array:4 [▶]
  "delivery_note" => array:4 [▶]
]
$bookingDetails = new bookingDetails;
$bookingDetails->units = units[0];
$bookingDetails->article_group = article_group[0];
$bookingDetails->article = article[0];
$bookingDetails->description_en = description_en[0];
$bookingDetails->unit_price = unit_price[0];
...
$bookingDetails->save();

and then the same thing with [1] and [2] and so on.
表单是动态生成的,并不总是包含4个值,但它们总是包含相同数量的值

我想做的是将这些记录保存在mysql数据库中,如下所示:

  $items =  array:8 [▼
  "units" => array:4 [▼
    0 => "1"
    1 => "1"
    2 => "1"
    3 => "1"
  ]
  "article_group" => array:4 [▼
    0 => "2401"
    1 => "2503"
    2 => "1360"
    3 => "1198"
  ]
  "article" => array:4 [▶]
  "description_en" => array:4 [▶]
  "unit_price" => array:4 [▶]
  "discount" => array:4 [▶]
  "invoice" => array:4 [▶]
  "delivery_note" => array:4 [▶]
]
$bookingDetails = new bookingDetails;
$bookingDetails->units = units[0];
$bookingDetails->article_group = article_group[0];
$bookingDetails->article = article[0];
$bookingDetails->description_en = description_en[0];
$bookingDetails->unit_price = unit_price[0];
...
$bookingDetails->save();

and then the same thing with [1] and [2] and so on.
但是我如何以这种方式迭代呢


将Johan看作是一个简单的
for
foreach
循环

for($i=0;$i<count($items['units']);$i++){
   $bookingDetails->units = $items['units'][$i];
   $bookingDetails->article_group = $items['article_group'][$i];
   $bookingDetails->article = $items['article'][$i];
   $bookingDetails->description_en = $items['description_en'][$i];
   $bookingDetails->unit_price = $items['unit_price'][$i];
   $bookingDetails->save();
}
for($i=0;$iunits=$items['units'][$i];
$bookingDetails->article_group=$items['article_group'][$i];
$bookingDetails->article=$items['article'][$i];
$bookingDetails->description_en=$items['description_en'][$i];
$bookingDetails->unit_price=$items['unit_price'][$i];
$bookingDetails->save();
}

而不是点击数据库n次数,在您的情况下,计数次,您可以使用批量插入在一次点击中执行相同操作

$your_data=array(
数组('col\u name\u 1'=>'Value 1','col\u name\u 2'=>'Value 2'),
数组('col\u name\u 1'=>'值3','col\u name\u 2'=>'值4')
);
您的_模型_名称::插入($your _数据);


这将提高应用程序的响应时间。

是的,这很有效,我不知道我在想什么……非常感谢!