【问题标题】:Codeigniter add new item to current session userdata arrayCodeigniter 将新项目添加到当前会话用户数据数组
【发布时间】:2014-04-24 13:56:51
【问题描述】:

所以我有这个数组:

$data = array(
  'item_1' => $this->input->post('item_1'),
  'item_2' => $this->input->post('item_2'),
  'item_3' => $this->input->post('item_3')
);

$this->session->set_userdata( 'items', $data );

我想在该数组中添加一个新项目,因此更新后的 userdata 数组将如下所示:

$data = array(
      'item_1' => $this->input->post('item_1'),
      'item_2' => $this->input->post('item_2'),
      'item_3' => $this->input->post('item_3'),
      'item_4' => $this->input->post('item_4')
);

$this->session->set_userdata( 'items', $data );

怎么做,谢谢

【问题讨论】:

    标签: php arrays codeigniter


    【解决方案1】:

    按照以下步骤将数据添加到当前会话:

    $data            = $this->session->userdata('items');
    $data['item_4']  = $this->input->post('item_4');
    $this->session->set_userdata('items', $data);
    

    这里,我们先取出数组中的current session items,再往数组中添加一项,你可以做一个array_push(),但我更喜欢上面的。现在,使用更新的数据重新设置会话。

    【讨论】:

      【解决方案2】:

      ellislab得到这个:

      添加自定义会话数据

      会话数组的一个有用方面是您可以向其中添加自己的数据,并将其存储在用户的 cookie 中。你为什么想做这个?这是一个例子:

      假设某个特定用户登录了您的网站。一旦通过身份验证,您就可以将他们的用户名和电子邮件地址添加到会话 cookie 中,从而使您可以在全球范围内使用这些数据,而无需在需要时运行数据库查询。

      要将数据添加到会话数组中,需要将包含新数据的数组传递给此函数: $this->session->set_userdata($array);

      其中 $array 是一个包含新数据的关联数组。这是一个例子:

      $newdata = array(
         'username'  => 'johndoe',
         'email'     => 'johndoe@some-site.com',
         'logged_in' => TRUE
      );
      $this->session->set_userdata($newdata);
      

      如果你想一次添加一个用户数据,set_userdata() 也支持这种语法。

      $this->session->set_userdata('some_name', 'some_value');
      

      所以本质上你应该能够创建你想要添加的项目,然后如果你想添加很多项目,可以使用$this->session->set_userdata("item_4", "item_4");$this->session->set_userdata($newdata) 将其添加到会话中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多