2017-04-07 61 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); 
    } 
} 
相关问题