我的阵列:
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循环不会打印出includes数组中的所有值。它只返回数组中的最后一个键。
答案 0 :(得分:0)
看起来您在使用之前会覆盖$check
变量。
你必须将if
语句放在foreach循环中,如下所示:
foreach (Session::get('product_compare') as $item) {
$check= $item['Product_ID'];
if (!($check == $id)) {
$request->session()->push('product_compare', $product);
}
}