array_push() 无法使用 PHP 中的会话

array_push() not working with session in PHP

我正在使用 PHP,我想使用 array_push() 在 SESSION 中存储两个以上的产品。但问题是,在 array_push 之后,购物车中只显示了 2 件产品。当我添加了两个以上的产品时,它不会被添加到购物车中。

这是我的代码:

$dataArray = array();

$cartArray = array(
   $code=>array(
       'id' => $id,
       'name' =>$name,
       'price' =>$price,
       'quantity' =>1)
  );
      
if(empty($_SESSION["shopping_cart"])) {
    $_SESSION["shopping_cart"] = $cartArray;
}
else {
    array_push($dataArray, $_SESSION["shopping_cart"], $cartArray);
    $_SESSION['shopping_cart'] = $dataArray;
}   

您可以像下面提到的那样直接给数组赋值。

$_SESSION['shopping_cart'][] = $dataArray;

它会为“shopping_cart”创建一个二维数组,每次添加 $dataArray

它将存储在新密钥中,因此您可以获得包含所有项目的“shopping_cart”数组

有关数组的更多信息,请查看:- php arrays

请在下面找到解决方案:

<php 
$cartArray = [
[
   'id' => $id,
   'name' =>$name,
   'price' =>$price,
   'quantity' =>1
],
[
    'id' => $id,
    'name' =>$name,
    'price' =>$price,
    'quantity' =>1
 ]
];
if(isset($_SESSION["shopping_cart"])){
if(empty($_SESSION["shopping_cart"])) {
    $_SESSION["shopping_cart"] = $cartArray;
}
else {
    array_push($_SESSION["shopping_cart"], $cartArray);
}  
}
?>