私は前のセッション値を現在のセッション値とマージしようとしていますが、残念ながら最後のセッションは両方の値をマージしようとすると破壊されます。codeigniterのset_userdata()を使用して前のセッション値を置き換えます
これは、私がマージセッションの配列に使用するコードです。
$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 = $ this-> session-> userdata( 'sesse');このような$ covr_wrap_milではなく、 $ oldses = array_merge($ oldses、$ covr_wrap_mil); $ this-> session-> set_userdata( 'sesse'、$ oldses); – JYoThI
お返事ありがとうございます@JYoThIありがとうございます。私は$ this-> session-> set_userdata( 'sesse'、$ oldses)を使います。それは動作しません。 – vikash
新しい変数をセッション変数に設定する前に、まず現在のセッションを配列に格納してから、新しいセッション値を前の配列にマージしなければなりません。 –