所以我有这个数组:
$data = array(
'item_1' => $this->input->post('item_1'),
'item_2' => $this->input->post('item_2'),
'item_3' => $this->input->post('item_3')
);
$this->session->set_userdata( 'items', $data );
我想在该数组中添加一个新项目,因此更新的userdata数组将如下所示:
$data = array(
'item_1' => $this->input->post('item_1'),
'item_2' => $this->input->post('item_2'),
'item_3' => $this->input->post('item_3'),
'item_4' => $this->input->post('item_4')
);
$this->session->set_userdata( 'items', $data );
怎么做,谢谢
答案 0 :(得分:4)
按照以下步骤将数据添加到当前会话:
$data = $this->session->userdata('items');
$data['item_4'] = $this->input->post('item_4');
$this->session->set_userdata('items', $data);
在这里,我们首先取出数组中的current session items
,将另一个项目添加到数组中,您可以执行array_push()
但我更喜欢上述内容。现在,使用更新的数据设置会话。
答案 1 :(得分:2)
来自ellislab:
添加自定义会话数据
会话数组的一个有用方面是您可以向其添加自己的数据,并将其存储在用户的cookie中。你为什么想做这个?这是一个例子:
让我们说某位特定用户登录您的网站。经过身份验证后,您可以将他们的用户名和电子邮件地址添加到会话cookie中,使您可以全局使用这些数据,而无需在需要时运行数据库查询。
要将数据添加到会话数组,需要将包含新数据的数组传递给此函数: $这 - >会话而> set_userdata($阵列);
其中$ array是包含新数据的关联数组。这是一个例子:
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
如果要一次添加一个userdata值,set_userdata()也支持这种语法。
$this->session->set_userdata('some_name', 'some_value');
因此,从本质上讲,您应该能够创建要添加的项目,然后使用$this->session->set_userdata("item_4", "item_4");
或$this->session->set_userdata($newdata)
将其添加到会话中,如果您想添加多个项目。