如何检查codeigniter的会话变量中是否存在值

时间:2019-05-14 13:49:27

标签: php codeigniter

我在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...
   }

}

2 个答案:

答案 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'));