我有
Session::instance()->get('orders')
,它是一些数组的数组:
$first = array('id' = 1, 'name' => 'first', 'price' => 100);
$second = array('id' => 2, 'name' => 'second', 'price' => 200);
$_SESSION['orders'] = array($first, $second);
但是如果我用这个
Session::instance()->set('orders', array(array('id' => 3, 'name' => 'third', 'price' => 300)));
这将删除第一个订单(id 1、id 2)。
如何将数据数组添加但不擦除到名为“订单”的会话数组?
array_push()
还是其他?
编辑,没看到你的评论,太完美了。
不言自明。
$session = Session::instance();
// Find existing data
$data = $session->get('orders');
// Add new array
$data[] = array('id' => 3, 'name' => 'new data', 'price' => 300);
// Resave it
$session->set('orders', $data);
对于我来说,我认为最好的方法是:
public function before() {
...
$this->variable = Session::instance()->get('key', array());
...
}
一些代码...
public function after() {
...
Session::instance()->set('key', $this->variable, Date::MINUTE);
...
}