2017-04-07 60 views
0

我的數組:Laravel的foreach僅返回最後一個關鍵的陣列

array:2 [▼ 
    0 => array:2 [▼ 
    "Product_ID" => "2" 
    "Product_Thumbnail" => "p38.jpg" 
    ] 
    1 => array:2 [▼ 
    "Product_ID" => "4" 
    "Product_Thumbnail" => "p41.jpg" 
    ] 
] 

我的功能:

public function add(Request $request, $id) { 
     $product_compare = Product::where('Product_ID', $id)->first(); 
     $product = []; 
     $product['Product_ID'] = $id; 
     $product['Product_Thumbnail'] = $product_compare->Product_Thumbnail; 

     if (Session::has('product_compare')) { 
      foreach (Session::get('product_compare') as $item) { 
       $check= $item['Product_ID']; 
      } 
      if (!($check == $id)) { 
       $request->session()->push('product_compare', $product); 
      } 
     } 
     else { 

      $request->session()->push('product_compare', $product); 
     } 
     return back()->withInput(); 

    } 

在功能的foreach循環不會打印出所有的值在包括陣列。它只返回數組中的最後一個鍵。

+0

它看起來並不像你的foreach循環在所有打印任何東西 – Shogunivar

回答

0

在使用它之前,您好像覆蓋了您的$check變量。

你必須把if聲明foreach循環裏面,像這樣:

foreach (Session::get('product_compare') as $item) { 
    $check= $item['Product_ID']; 
    if (!($check == $id)) { 
     $request->session()->push('product_compare', $product); 
    } 
} 
相關問題