【问题标题】:Removing Session Data not working删除会话数据不起作用
【发布时间】:2016-03-04 12:32:29
【问题描述】:

我将一些数据存储在session 中的一些action 上。当user 单击链接时,它会创建arraysarray。现在,在某些操作后,我试图删除特定的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]);

这会删除它,刷新后,它会再次出现,有什么想法吗?

【问题讨论】:

  • 展示你的创作功能
  • @NabinKunwar 我已经编辑了问题,请看一下
  • 当你重新加载页面时,我猜你的数组会被写回会话。
  • 什么都没有。所以在页面重新加载时它正在重新创建该数据。可能是
  • unset($_SESSION['cart'][103]);在一个函数里面?

标签: php arrays session yii


【解决方案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

【讨论】:

  • 我已经更新了我的问题,我实际上是在做 $_SESSION['cart'][$item->id] = $arr; .所以,它使它像这样 $_SESSION['cart'][103] = $arr;,那么现在我将如何实现我想要实现的目标?
  • 在您的问题中包含 print_r($_SESSION) 的输出。我注意到您取消设置 103 但数组中的 item_id 是 104。
  • 它确实有效,问题是,我实际上在做$_SESSION['cart'][] = $arr;,而不是$_SESSION['cart'][$item->id] = $arr;。感谢您的帮助!
猜你喜欢
  • 2016-05-27
  • 1970-01-01
  • 2022-07-08
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 2017-10-19
  • 1970-01-01
相关资源
最近更新 更多