我将session
中的一些数据存储在某些action
上。当user
点击该链接时,会创建array
arrays
。现在,我正在尝试删除特定的array
。它会被删除,刷新页面后会再次显示。
这就是我创建会话数组的方式:
$arr = array('item_id' => $item->id, 'title' => $item->title, 'price' => $item->price, 'user_id' => $item->user_id, 'image_url' => $photo->image_url, 'type' => $item->type);
$_SESSION['cart'][$item->id] = $arr;
数组是这样的:
Array
(
[103] => Array
(
[item_id] => 104
[title] => Roll Paratha
[price] => 25
[user_id] => 10
[image_url] => 3494655857Food-HD-Wallpaper-Download.jpg
[type] => Photo
)
[104] => Array
(
[item_id] => 106
[title] => Qeema Mattar
[price] => 25
[user_id] => 92
[image_url] => 384899841160323-pakistan-pakistani-cultural-foods.jpg
[type] => Photo
)
)
我这样做是为了从会话中删除数组:
unset($_SESSION['cart'][103]);
这会删除它并在刷新时再次出现,任何想法?
答案 0 :(得分:1)
您正在取消设置错误的变量。
如果您创建会话值如下:
$_SESSION['cart'][] = $arr;
然后PHP会将$ arr放入$_SESSION['cart'][0]
,因为它会分配一个自动递增的密钥。
所以你的会话数组看起来像这样:
Array
(
[cart] => Array
(
[0] => Array
(
[103] => item
[104] => item
)
)
)
如果您取消设置$_SESSION['cart'][0][103]
,您将获得所需的效果。
我的建议是以不同的方式分配,所以将你的作业更改为:
$_SESSION['cart'] = $arr