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) {

ネストされた配列があるため、1レベル深くする必要があります。


以下のコメントごとの配列の例:

[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 に答える