我得到了产品的id并尝试从我的会话数组中删除。我使用unset并且一切顺利但是当我尝试在循环中显示数据时,会话仍然有已删除的行,所以我得到错误Undefined偏移量:0。 我使用第二个会话,只有第一个的计数,所以当我删除一行时它工作正常。但是当我尝试相同的多维会话时($ _SESSION [' cart'] = $ _SESSION [ ' cart'] -1;)它不起作用,我得到错误不支持的操作数类型..
总而言之,我需要从会话数组中删除特定数据,当我使用unset时它会删除它但是如果我有3个产品我仍然拥有所有索引我删除第二个并且当我显示它们时数组仍然有索引0,1,2 ..
这是我的代码
$cart = $_SESSION['cart'];
$c=$_SESSION['c'];
$id=$_GET['id'];
unset($_SESSION['c'][$id]);
unset($_SESSION['cart'][$id]);
$_SESSION['c'] = $_SESSION['c'] -1;
$_SESSION['cart'] = $_SESSION['cart'] -1;
答案 0 :(得分:1)
替换
$_SESSION['c'] = $_SESSION['c'] -1;
通过
$_SESSION['c'] = array_values($_SESSION['c']);
“ - 1”将抛出错误,因为您试图从N维数组中减去数值。 完成取消设置/删除操作后,array_values将返回更新的$ _SESSION ['c']。
P.S。相应地更新你的代码$ _SESSION ['cart']。