从会话信息中删除项目

时间:2013-03-19 18:51:59

标签: php arrays codeigniter session

我正在使用CodeIgniter编写此项目,您可以在其中添加和删除存储桶中的项目,例如互联网商店。

我的会话类中有一个数组,我要做的是按id搜索元素并删除它们。

public function removeRow($id) {
    if ($id) {
        $bucket = $this->session->userdata('bucket');
        foreach ($bucket as $key => $value) {
            if ($value['id'] == $id) {
                unset($bucket[$key]);
            }
        }
        $this->session->set_userdata(array(
            'bucket' => $bucket
                )
        );
    }

session信息:

Array
(
    [session_id] => e0c6303a7c24a05436ef0abfe2424c44
    [ip_address] => 127.0.0.1
    [user_agent] => Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0
    [last_activity] => 1363718778
    [user_data] => 
    [a] => test
    [bucket] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [name] => Maksas Frajus - Amžinybės glėbyje
                            [price] => 30.99
                        )

                )

            [1] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [name] => Maksas Frajus - Atėjūnas
                            [price] => 35.99
                        )

                )

            [2] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [name] => Maksas Frajus - Paprasti stebuklingi daiktai
                            [price] => 27.5
                        )

                )

        )

)

我收到此错误消息:

Message: Undefined index: id

我甚至都不知道自己做错了什么。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

if ($value['id'] == $id) {

应该是这样的:

if ($value[0]['id'] == $id) {

你有一个嵌套数组,所以你需要更深层次。


以下评论的示例数组:

[bucket] => Array
    (
        [3] => Array
            (
                [id] => 3
                [name] => Maksas Frajus - Amžinybės glėbyje
                [price] => 30.99
            )

        [1] => Array
            (
                [id] => 1
                [name] => Maksas Frajus - Atėjūnas
                [price] => 35.99
            )

        [2] => Array
            (
                [id] => 2
                [name] => Maksas Frajus - Paprasti stebuklingi daiktai
                [price] => 27.5
            )

    )