如何将不同的单个数组存储到数据库中?

时间:2018-06-14 06:36:20

标签: php laravel

我有两个数组,我可以在表单提交后得到:

$product_id = $request->get('product_id');
// [1, 3, 4]
$quantity = $request->get('quantity');
// [5, 1, 2]

现在我想将这个数组提交到数据库中,我想从产品数据库中选择purchase_price。我不确定如何将product_id分配给product_quantity(索引0到0,1到1,2到2)并存储到数据库中。

存储到购物车中的示例数据:

[1  5  120 ],
[3  1  230 ],
[4  2  340 ],

foreach ($product_id as $product) 
{

}

DB::table('carts')->insert(
  ['product_id' => '', 
    'quantity' => 0,
    'purchase_price' => 
   ]
 );

只是为了澄清:
来自动态输入框的product_idquantity表示product_idquantity的数量相同,但可能是用户需要的n倍。所以我把它存储为数组。

现在从这个数组我希望将它存储在我想用product_idquantity存储的数据库中。

3 个答案:

答案 0 :(得分:0)

您可以使用

foreach ($product_id as $key=>$product)
{
    //select purchase price from table by using the $product value
    $purchase_price = *your select code here*
    DB::table('carts')->insert([
        'product_id' => $product,
        'quantity' => $quantity[$key],
        'purchase_price' => $purchase_price
    ]);
}

如果不行,请告诉我

答案 1 :(得分:0)

让我们给你一些建议:

如果你有下面的数组 - 如果你没有,那么使它像下面这样的数组:

$dataset = [
    0 => [
        'product_id' => 1, 
        'quantity' => 5,
        'purchase_price' => 120,
    ],
    1 => [
        'product_id' => 3, 
        'quantity' => 1,
        'purchase_price' => 230,
    ],
    2 => [
        'product_id' => 4, 
        'quantity' => 2,
        'purchase_price' => 340,
    ]
];

现在你必须为此编写INSERT查询:

$result = Cart::insert($dataSet);

if ($result)
    return true;
else
    return false;

在看到上面的代码后,你会知道怎么做...祝你好运

答案 2 :(得分:0)

请查看此示例。 你可以解析2d数组并将其转换为json存储在数据库中然后解码回来:

        $product_id = [1,2,3];
        // [1, 3, 4]
        $quantity = [5,1,2];
        // [5, 1, 2]
        $output=[120,230,340];
        $out=[];
        for ($i=0; $i < count($product_id); $i++) {
            $out[$i]=[$product_id[$i],$quantity[$i],$output[$i]];
        }
        dd(json_encode($out));

输出:

  

“[[1,5,120],[2,1,230],[3,2,340]]”