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

Php 如何删除ci中会话中存储的数组值?,php,codeigniter,Php,Codeigniter,我的产品ID以数组形式以“pid”的形式存储在会话中。现在,我想删除它的一个值,该值来自$id变量。如何删除其中一个值 我试着像下面那样让它不稳定,但它不起作用 $this->session->unset_userdata('pid', $id); CI会话unset\u userdata()方法不支持多级数组中的unset值 PS:您可以访问Sessionclassuserdata变量,它是默认的public 这样试试 $this->session->set_user

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

我试着像下面那样让它不稳定,但它不起作用

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

CI会话
unset\u userdata()
方法不支持多级数组中的unset值

PS:您可以访问
Session
class
userdata
变量,它是默认的
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());
读一下。。
//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'));