1

我正在使用 编写这个项目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

我什至不知道我做错了什么。有人可以解释吗?

4

1 回答 1

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
            )

    )
于 2013-03-19T18:54:53.040 回答