如何在ci中删除存储在会话中的数组的值?

时间:2014-06-30 08:36:05

标签: php codeigniter

我的产品ID以数组形式存储在'pid'的会话中。现在,我想删除其中一个值,值来自$ id变量。如何删除其中一个值?

我试着像下面那样取消它,但它没有用。

$this->session->unset_userdata('pid', $id);

2 个答案:

答案 0 :(得分:2)

//first get whole array in session sored as pid key  
     $ses_array = $this->session->userdata('pid');
//remove value you want to delete means $id
     if(($key = array_search($id, $ses_array)) !== false) { 
           unset($ses_array[$key]);
     }
//again set this array to session
$this->session->set_userdata('pid',$ses_array)
     print_r($this->session->userdata('pid'));

答案 1 :(得分:0)

CI会话unset_userdata()方法不支持多级数组中的未设置值。

PS :您可以访问Sessionuserdata变量,它是默认的public

试试这种方式

$this->session->set_userdata(array('pid' => array(1,2,3,4,5,6)));
unset($this->session->userdata['pid'][4]); //your id key ['pid'][$id]
print_r($this->session->all_userdata());