Codeigniter echo会话Multidimensional Array变量

时间:2014-08-27 02:31:32

标签: codeigniter session multidimensional-array

好吧我使用codeigniter,我得到了一个会话,我想回显[user_id],我可以看到它的"多维数组",但我似乎无法正确...

这是来自所有会话userdata的print_r:

Array ( 
[session_id] => b7e721332248 
[ip_address] => ::1 
[user_agent] => Mozilla/5.0 
[last_activity] => 1409104940 
[user_data] => [name] => 2 [uniq] => 2 
[flexi_auth] => Array ( [user_identifier] => mail.com [user_id] => 2 [admin] => 1 
[group] => Array ( [3] => Master Admin ) 
[privileges] => Array ( ) 
[logged_in_via_password] => 1 
[login_session_token] => 11017021313jhbjh1h2j3b213mab913269d95 ) )

如果我输入:

  1. print_r($this->session->all_userdata()); //我会全部
  2. echo $this->session->userdata('uniq'); //返回2
  3. echo $this->session->userdata('user_id'); //什么都不返回(这就是问题)
  4. 我尝试过这样的事情: $this->session->userdata(1,1); // 1,1将是数组2,数字2将是user_id

    是因为我只能打印出来,如果我以某种方式循环播放它们吗?

2 个答案:

答案 0 :(得分:1)

您尝试直接调用数据,如果您想要访问user_dataflexi_auth,您需要将数据分配给变量然后定位它,因为他们&# 39;重新阵列。

$session_data = $this->session->all_userdata();
echo $session_data['user_data']['uniq']; // 2

$user_data = $this->session->userdata('user_data');
echo $user_data['uniq']; /// 2

$flexi_auth = $this->session->userdata('flexi_auth');
echo $flexi_auth['user_id']; /// 2

如果您尝试直接定位字符串

echo $this->session->userdata('last_activity');

答案 1 :(得分:0)

您可以像这样简单地访问存储在会话中的用户名

echo $this->session->userdata['user_data']['name'];

请确保您在会话中有一些用户数据,或使用这种用户数据来避免任何错误

echo @$this->session->userdata['user_data']['name'];

添加@不会产生任何错误。希望您能找到想要的答案。