我正在用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的信息。谢谢!