как проверить, существует ли значение в переменной сеанса codeigniter - PullRequest
0 голосов
/ 14 мая 2019

Я нашел этот фрагмент кода в документации 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 голосов
/ 15 мая 2019

Хорошо, функция, которую я искал, это sizeof (). это делает трюк.

echo sizeof($this->session->userdata('role'));
0 голосов
/ 14 мая 2019

Привет, проверьте приведенный ниже код, чтобы получить и установить данные в сеансе. Этот метод будет хранить значение в одной переменной

$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...