我在codeigniter的文档中找到了这段代码,我想知道是否存在一个知道会话中是否存在值的codeigniter函数
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
此会话存储与通常的单元素会话相反的数组。 如何访问此数组中的项目? 我如何检查该数组中是否存在项目?
感谢您的回复,但我仍然不满意。检查一下
if ($roles->result_array())
{
foreach($roles->result_array() as $key => $value)
{
$role[] = $value['type'];
}
}
$this->session->set_userdata('role', $role);
使用print_r()函数,我得到此输出Array ( [0] => admission officer [1] => subject teacher )
当我执行此操作print_r($this->session->userdata('role'))
时,我将得到admission officer
,这是所需的输出,但是我的挑战是如何遍历此会话数组,以便我可以知道该数组的大小并使用索引循环中的值?
类似:
for($i = 0; $i < $this->session->userdata('role')->length(); $i++)
{
if($this->session->userdata('role')[$i] == 'admission officer')
{
some code here...
}
}
答案 0 :(得分:0)
您好,请检查以下代码以获取和设置会话中的数据 此方法会将值存储在一个变量中
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata('new_session', $newdata);
$sessionData = $this->session->userdata('new_session');
您也可以直接获取这样的数据:
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
print_r($this->session->userdata->username);
答案 1 :(得分:0)
好吧,我正在寻找的功能是sizeof()。它可以解决问题。
echo sizeof($this->session->userdata('role'));