如何创建增量数组来进行批量插入?

问题描述 投票:0回答:2

我需要执行类似下面示例的操作,但我不知道如何将字段添加到数组中。

    $column_count = 0;
    foreach ($line as $column) {

        $array_line[$column_count] = $field_names[$column_count] => $column;
        $column_count++;
    }
    DB::table('table')->insert($array_line);

当我尝试像这样执行时:

    $column_count = 0;
    foreach ($line as $column) {

        $array_line[$column_count] = [$field_names[$column_count] => $column;]
        $column_count++;
    }
    DB::table('table')->insert($array_line);

我收到一个错误,显示 Laravel 如何设置我的查询,它看起来像这样:

    INSERT INTO table (column1) VALUES (value_original_column_1), (value_original_column_2), (value_original_column_3);

正确的做法应该是:

    INSERT INTO table (column1, colum2, column3) VALUES (value_original_column_1, value_original_column_2, value_original_column_3);
php arrays laravel builder
2个回答
0
投票
$column_count = 0;
$array_line =[];
$line = ['column1','column2'];
$field_names = [ 0 => "title",1=>"description"];
 foreach ($line as $column) {
   $array_line[$field_names[$column_count]] =   $column;
        $column_count++;
 }
\DB::table('post')->insert($array_line);

0
投票

使用array_map填充列数:

DB::table('table')->insert(array_map(function ($item) {
    $item['column_count'] = count(array_keys($item));
    return $item;
}, $lines));
© www.soinside.com 2019 - 2024. All rights reserved.