我不理解的购物车怪异互动

时间:2019-11-22 19:34:56

标签: php arrays session

我正在用php创建一个带有数组的购物车。数组的第一个数组是存储ShoeId和上一页中POST的数量。它存储在$ _SESSION ['cart']中。

然后,我将购物车与一个名为$ cleanArray的新数组进行比较,以查找重复项并通过增加数量来替换它。但是我遇到了一个我不明白的问题,花了无数小时之后,我决定在这里问。

//creating a final cart
$cleanArray = array();
//to prevent sql injection
$shoeID = $conn->real_escape_string($_POST['shoeID']);
$quantity = $conn->real_escape_string($_POST['quantity']);
// $_SESSION['cart'] = array();

如果我离开$ _SESSION ['cart'] = array();在代码中,购物车将自行清算。 但是,如果我添加了它,请刷新我的网页,然后再次删除该代码。我的购物车会按预期工作。

//checking if Cart Array exist and if ShoeID and quantity has been selected
if (isset($_POST['shoeID']) && ($_POST['quantity'])){
    if(isset($_SESSION['cart'])){

        echo "shoeID: $shoeID";
        echo "<br>";
        echo "Quantity: $quantity";
        echo "<br>";


        $_SESSION['cart'][] = array('shoeId' => $shoeID, 'quantity' => $quantity); 

    $cartArray = $_SESSION['cart'];

    //find for duplicate shoeId and then increase the quantity.
    foreach($cartArray as $item){
        if(isset($cleanArray[$item['shoeId']])){
            $cleanArray[$item['shoeId']]['quantity'] += $item['quantity'];
        } else {
            $cleanArray[$item['shoeId']] = $item;
        }
    }
} else {
    echo "Cart Is Empty!";
}

$cleanArray = array_values($cleanArray);
print_r($cleanArray);
$_SESSION['finalCart'] = $cleanArray;

任何形式的建议都会有所帮助,因为我是php的新手,并且我试图了解更多有关php的信息。谢谢!

0 个答案:

没有答案