1
我的產品ID以陣列形式存儲在'pid'會話中。現在,我想刪除它的一個值,並且該值來自$ id變量。我如何刪除它的一個值?如何刪除ci中會話中存儲的數組的值?
我嘗試像下面那樣取消設置,但它不起作用。
$this->session->unset_userdata('pid', $id);
我的產品ID以陣列形式存儲在'pid'會話中。現在,我想刪除它的一個值,並且該值來自$ id變量。我如何刪除它的一個值?如何刪除ci中會話中存儲的數組的值?
我嘗試像下面那樣取消設置,但它不起作用。
$this->session->unset_userdata('pid', $id);
//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'));
CI session unset_userdata()
方法將不支持多級數組內的未設置值。
PS:您可以訪問Session
類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());
[閱讀...](http://ellislab.com/forums/viewthread/242318 /) – Darren
閱讀本文.. http://ellislab.com/codeigniter/user-guide/libraries/sessions.html – Hardy