2016-04-14 4 views
1

私はこの例外を取得しています:不定オフセット:2は、データベース内の多次元配列を挿入するとき。私は私の配列は罰金を見ているようだエコーときErrorExceptionオフセット: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つのアイテムがある場合、エラーは未定義オフセットに設定されます。3 そのように私は本当の麦を見つけることができません。私は決して管理していないウェブを検索しました。親切なお手伝いをいたします。 どうしたらいいですか?あなたが取得している

答えて

0

エラーがcount($product)のインデックスを持つ要素を持っていないとしています。

あなただけ使用する必要があります。

for($i= 0; $i <count($product)-1; $i++)

この方法で、あなたループは罰金になります。

0

奇数配列構造のようなものです。あなたはこのようにそれを再配置する場合はので、あなたは、製品ごとのアイテムを持っているデータを扱うはるかに簡単に時間を持っていると思います:

$products = [ 
    [ 
     'product_id' => 7, 
     'quantity' => 2, 
     'price' => 200.00, 
     'amount' => 400 
    ], 
    [ 
     'product_id' => 1, 
     'quantity' => 1, 
     'price' => 700.00, 
     'amount' => 700 
    ] 
]; 

次に、あなただけの製品に対するforeachことができます。

あなたの問題の修正プログラムは、しかし、このfor($i= 0; $i <= count($product); $i++)

+0

おかげでジムです。 for($ i = 0; $ i <= count($ product); $ i ++)は同じエラーを保持します。 にpreg_replace(): – wafutech

+0

は私も()しますprint_r上で正しく表示されますが、helpers.phpラインで686 ErrorExceptionを返し、あなたの提案のアレイ構造試してみましたが、私はただ、コード – wafutech

+0

を実行すると、交換が配列されながら、パラメータの不一致を、パターン文字列があります私が何をしたかを見てください。私は私が – wafutech