我收到此异常:未定义的偏移量:在数据库中插入多维数组时为2。这是我的循环,错误指向:
$order_details = [];
for($i= 0; $i < count($product); $i++){
$order_details[] = [
'order_id' => $orders->id,
'product_id' => $product['product_id'][$i],
'units'=>4,
'quantity' => $product['quantity'][$i],
'unit_price' => $product['price'][$i],
'product_discount_id'=>0,
'amount' => $product['amount'][$i],
];
}
当我回应我的阵列似乎看起来很好:
Array ( [product_id] => Array ( [0] => 7 [1] => 1 ) [quantity] => Array ( [0] => 2 [1] => 1 ) [price] => Array ( [0] => 200.00 [1] => 700.00 ) [amount] => Array ( [0] => 400 [1] => 700 ) )
未定义的偏移值会根据购物车中有多少项传递给循环而交替显示。例如,如果有3个项目,则将错误设置为Undefined offset:3 它就像我找不到真正的痣。我在网上搜索过我没有办法解决的问题。 任何援助亲切。我可能做错了什么?
答案 0 :(得分:0)
您获得的错误是没有索引为count($product)
的元素。
你应该使用:
for($i= 0; $i <
的 count($product)-1
强> ; $i++)
这样你循环就可以了。
答案 1 :(得分:0)
这是一种奇怪的阵列结构。如果您重新安排数据,那么您可以更轻松地处理数据,这样每个产品都有一个项目:
$products = [
[
'product_id' => 7,
'quantity' => 2,
'price' => 200.00,
'amount' => 400
],
[
'product_id' => 1,
'quantity' => 1,
'price' => 700.00,
'amount' => 700
]
];
然后你就可以了解产品。
问题的解决方法是for($i= 0; $i <= count($product); $i++)