Codeigniter从数组中获取std对象值

时间:2014-04-03 11:26:25

标签: php arrays codeigniter session

我在控制器的会话变量中存储了一个数组。我想在另一个控制器方法中访问该数组的元素,是否可能?

这里$ result返回一个数组,我已经为codeigniter会话分配了数组。

$result = $this->insert->verify_user($val);
                    $this->session->set_userdata($result);
                    return true;

我正在收到像这样的自定义会话数据

$this->session->userdata('id');

但它对我没有任何意义,

当我做var_dump ($this->session->all_userdata());

时 它告诉我:

array
  'session_id' => string '585429364de0b70ee3887dfe44c4c8ce' (length=32)
  'ip_address' => string '127.0.0.1' (length=9)
  'user_agent' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0' (length=72)
  'last_activity' => int 1396524445
  'user_data' => string '' (length=0)
  0 => 
    object(stdClass)[17]
      public 'id' => string '1' (length=1)
      public 'username' => string 'admin' (length=5)
      public 'password' => string 'admin' (length=5)
  'username' => string 'admin' (length=5)
  'password' => string 'admin' (length=5)

2 个答案:

答案 0 :(得分:1)

不是codeigniter用户,但似乎您需要在关联数组中设置数据,以便知道要查找的键:

    $result = $this->insert->verify_user($val);
    $this->session->set_userdata(array('somekey'=>$result));
    return true;

    $this->session->userdata('somekey')->id;

答案 1 :(得分:1)

在变量中设置session值,并按数组索引

访问它
$data =  $this->session->all_userdata();
echo $data[0]->id;