Php codeigniter会话中的多个阵列

Php codeigniter会话中的多个阵列,php,arrays,codeigniter,session,Php,Arrays,Codeigniter,Session,我试图在CodeIgniter会话中获得多个阵列: if ($this->session->has_userdata('products')){ $outerarray = array( $array = array( 'id' => $id, 'quantity' => 1 )); array_push($outerarray, $this->session->userdat

我试图在CodeIgniter会话中获得多个阵列:

if ($this->session->has_userdata('products')){
  $outerarray = array(
  $array = array(
            'id' => $id,
            'quantity' => 1
            ));
  array_push($outerarray, $this->session->userdata('products'));
  $data['products'] = $outerarray;
  $this->session->set_userdata($data);
} else {
  $data['products'] = array(
            'id' => $id,
            'quantity' => 1
            );
  $this->session->set_userdata($data);
}
else部分工作正常,但是当会话中已经有一个数组时,它会在会话中这样放置它:

array(2) { [0]=> array(2) { ["id"]=> string(1) "7" ["quantity"]=> int(1) } [1]=> array(2) { ["id"]=> string(1) "1" ["quantity"]=> int(1) } }
我真正想看到的是:

array(2) { ["id"]=> string(1) "7" ["quantity"]=> int(1) } array(2) { ["id"]=> string(1) "1" ["quantity"]=> int(1) }

会话中是否可能只有
$outeraray
的内容,而不是整个
$outeraray
本身?

您必须这样做:

$data = array('id' => 1, 'quantity' => 2);

if (isset($_SESSION['products'])) {
    array_push($_SESSION['products'], $data);
}
else {
    $_SESSION['products'] = array($data);
}

尝试此阵列推送($会话['products',$data)<代码>$this->session->set_userdata($data[0])