我遇到了 array_key_exists 問題。我需要檢查購物車中是否已存在產品。我這樣做:.$session = $this->request->getSession(); $cart = $session->read( 'cart' ); if (array_key_exists($order->product_id, (array) $cart)) { $this->Flash->error('Invalid request'); } else { $cart[] = $order; $session->write('cart', $cart ); $this->Flash->success($order->product->name_product . ' has been added to the shopping cart'); return $this->redirect( ['action' => 'index'] ); } return $this->redirect($this->referer()); } else { return $this->redirect(['action' => 'index']); }..我收到以下錯誤,但現在更新后它不再存在。但該功能仍然對我沒有幫助。array_key_exists() expects parameter 2 to be array, int given即使產品已添加,也會將其添加到購物車。我需要將所選產品 ID 與購物車中已有的產品 ID 進行比較。訂單信息基本上是:id、數量、user_id、product_id。如果有人可以分析某種方法來檢查已安裝數組中的 id,我將不勝感激。
1 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
當你這樣做時:
$cart[] = $order;
您要求 PHP 將一個新元素添加到數組末尾$cart
,并為其提供下一個可用的數字鍵。然后,您嘗試查看產品 ID 是否作為數組中的鍵存在。除非您的產品 ID 類似于 0 和 1,否則這種情況不太可能發生。如果您希望購物車通過產品 ID 進行鍵入,請使用
$cart[$order->product_id] = $order;
- 1 回答
- 0 關注
- 251 瀏覽
添加回答
舉報
0/150
提交
取消