【发布时间】:2017-01-24 07:00:34
【问题描述】:
我正在尝试将前一个会话值与当前会话值合并,但不幸的是,当我尝试合并这两个值时,最后一个会话被破坏了。
这是我用于合并会话数组的代码。
$sess=$this->session->userdata('sesse');
$covr_wrap_mil=array();
$covr_wrp=$this->session->userdata('bar');
$mil=array('miluna_products'=>$milunaid,'total_price'=>$totalprice);
$covr_wrap_mil[]=array_merge($covr_wrp,$mil);
if(isset($sess) && !empty($sess)):
$oldses=$this->session->userdata('sesse');
$oldses=array_merge($oldses,$covr_wrap_mil);
$this->session->set_userdata('sesse',$covr_wrap_mil);
else:
$this->session->set_userdata('sesse',$covr_wrap_mil);
endif;
目前我正在获取这个数组
Array
(
[0] => Array
(
[style_id] => 308
[wrap] => Array
(
[285] => 285
)
[cover] => Array
(
[307] => 307
)
[miluna_products] => a:2:{s:6:"322%14";s:30:"a:1:{i:0;s:12:"100_2102.jpg";}";s:7:"323%268";s:35:"a:1:{i:0;s:17:"1449004825736.gif";}";}
[total_price] => 282
)
)
但我想像这样将新数组与以前的数组合并。
Array
(
[0] => Array
(
[style_id] => 308
[wrap] => Array
(
[285] => 285
)
[cover] => Array
(
[307] => 307
)
[miluna_products] => a:2:{s:6:"322%14";s:30:"a:1:{i:0;s:12:"100_2102.jpg";}";s:7:"323%268";s:35:"a:1:{i:0;s:17:"1449004825736.gif";}";}
[total_price] => 282
)
[1] => Array
(
[style_id] => 309
[wrap] => Array
(
[275] => 275
)
[cover] => Array
(
[377] => 377
)
[miluna_products] => a:2:{s:6:"322%14";s:30:"a:1:{i:0;s:12:"100_2102.jpg";}";s:7:"323%268";s:35:"a:1:{i:0;s:17:"1449004825736.gif";}";}
[total_price] => 282
)
)
不明白问题出在哪里。任何帮助将不胜感激。
【问题讨论】:
-
array_merge 正在工作,但您的存储会话再次只有 $covr_wrap_mil 这是什么问题,所以您必须将会话 $oldses 设置为在最后一行使用,而不是像这样的 $covr_wrap_mil $oldses=$this->会话->用户数据('sesse'); $oldses=array_merge($oldses,$covr_wrap_mil); $this->session->set_userdata('sesse', $oldses);
-
感谢@JYoThI 的回复,你是对的。我使用 $this->session->set_userdata('sesse', $oldses);但它不起作用。
-
您必须先将当前会话存储到一个数组中,然后才能为会话变量设置新值,然后将新会话值合并到之前的数组中。
标签: php arrays codeigniter session