У меня есть многомерный массив $ _SESSION ['cart'], в котором хранятся детали товаров. Я удаляю элементы из массива, передавая PHP указанный c идентификатор элемента, используя ajax, и я дважды проверил, что идентификатор всегда приходит вовремя.
if ($_GET['action'] == 'delCartItem') {
//delete the item from the array
$_SESSION['totItmes'] =0;
$e=0;
if ($_POST['uid']){
foreach($_SESSION['cart']as &$arr){
$_SESSION['totItmes'] = $_SESSION['totItmes'] +$arr['quantity'];
if($arr['id']==$_POST['uid']){
$testArriveId= $arr['id']."hello".$_POST['uid'];
$before= count($_SESSION['cart']);
//**********************************************************************
unset($_SESSION['cart'][$e]);
//**********************************************************************
if(count($_SESSION['cart'])<$before){
$_SESSION['totItmes'] = $_SESSION['totItmes'] -$arr['quantity'];
}
}
$e++;
}
$_SESSION['cart']= array_values($_SESSION['cart']);
...
ПРОБЛЕМА: этот код отлично работает для первый элемент, который я удаляю из корзины после начала сеанса. Затем мне нужно дважды щелкнуть удалить и реализовать весь код, и я не понимаю, почему. Есть идеи?