Codeigniter 如何将会话中的每个数据输出到视图

Codeigniter 如何将会话中的每个数据输出到视图,codeigniter,session,Codeigniter,Session,我有这段代码,我只是不知道如何输出视图中的每个项目,例如firstname、lastname和username controller { $selected_users = array( 'username' => $username, 'firstname' => 'peter', 'lastname' => 'Sample' ); $users = json_decode($t

我有这段代码,我只是不知道如何输出视图中的每个项目,例如firstname、lastname和username

controller

{
    $selected_users = array(
          'username' => $username,
          'firstname' => 'peter',
          'lastname' => 'Sample'
          );
    $users = json_decode($this->session->userdata('users'), true);
    $users[] = $selected_users;
    $this->session->set_userdata('users', json_encode($users));
    $this ->load->view('db_control\sess');
   }

view:

$username = $this->session->userdata('users');
echo $username;

but it output all of it 
output of this code is  
[{“用户名”:“newtest1”,“名字”:“newtest1”,“姓氏”:“newtest1”},{“用户名”:“sample_-beth”,“姓氏”:“sample_-beth”,“姓氏”:“sample_-beth”},{“用户名”:“默认”,“姓氏”:“默认”,“姓氏”:“默认”}]


这是正确的,但我想输出用户名、lastname和firstname,但仍然是所有记录

您可以像这样简单地传递数据 控制器

$data['selected_users'] = array(
                        'username'  =>  'testuser',
                        'firstname' =>  'peter',
                        'lastname'  =>  'Sample'
                    );
$this->load->view('viewname',$data );
视图:

echo$selected_用户['username'];
回声“
”; echo$selected_用户['firstname']; 回声“
”; echo$selected_用户['lastname'];
在一个变量中设置所选用户数组。试试这个:

controller
{
$selected_users = array(
'username' => $userID,
'firstname' => 'peter',
'lastname' => 'Sample'
);
$this->session->set_userdata($selected_users);
}

view:
echo $this->session->userdata('username');
echo $this->session->userdata('firstname');
echo $this->session->userdata('lastname');

在您的视图中,将您的
代码更改为:

$username = json_decode($this->session->userdata('users'), TRUE);

      foreach ($username AS $key => $value) {
              echo 'Username: ' . $value['username'];
              echo '<br/>';
              echo 'First Name: ' . $value['firstname'];
              echo '<br/>';
              echo 'Last Name: ' . $value['lastname'];
              echo '<br/><hr><br/>';  
      }
$username=json\u decode($this->session->userdata('users'),TRUE);
foreach($key=>$value的用户名){
回显“用户名:”.$value['Username'];
回声“
”; 回显“firstname:”.$value['firstname']; 回声“
”; 回显“姓氏:”.$value['lastname']; 回音“


”; }

基本上,您正在将
JSON
转换回数组,然后在其中循环。

但是输出应该是用户名列表,不仅仅是一条记录,它给出了一个输出,而且只有一条记录(它覆盖了以前选择的记录),来自user_data sessions(用户数据会话)的数据是所选所有用户名的列表。是的,它应该是来自user_data session(用户数据会话)的名称列表,但如果我要删除会话user_data(用户数据)中的特定用户名,该怎么办?在
foreach
循环中检查用户名并按索引将其删除
foreach($username AS$key=>$value){if($value['username']=='my_username')unset($username[$key]);}//重新索引数组$username=array_值($username)//将数据写回会话$this->session->set_userdata('users',json_encode($username))这不是最好的方法,您不应该在会话中存储这么多数据。
$username = json_decode($this->session->userdata('users'), TRUE);

      foreach ($username AS $key => $value) {
              echo 'Username: ' . $value['username'];
              echo '<br/>';
              echo 'First Name: ' . $value['firstname'];
              echo '<br/>';
              echo 'Last Name: ' . $value['lastname'];
              echo '<br/><hr><br/>';  
      }