我创建了two-dimensional array
会话。如果用户可以输入项目,并且当他/她点击ADD button
时,该项目的array
将插入名为item_names
的会话中。现在,我正在尝试,只要用户点击unset
上有delete button
的某个项目,就无法unique id
。我发现函数unset_userdata()
已经不支持关联数组,正如我想要实现的那样。除此之外还有其他功能吗?
Controller.php这样
public function delete_item(){
$app_no = $this->input->post('app_no'); // product id of item
$items_session = $this->session->userdata('item_names');
foreach ($items_session as $key => $value) {
if($value['product_id'] == $app_no){
$this->session->unset_userdata($items_session[$key][$app_no]);
}
}
}
数组结构
Array
(
[0] => Array
(
[product_id] => 201708010010
[product_name] => LADDER BRICK
[total_prod_price] => P50
[requestQty] => 1
)
(
答案 0 :(得分:2)
您无法在codeingiter的会话中直接取消设置多维数组的特定值。您必须将所有会话值转换为变量。取消设置特定值并再次在会话中设置变量,如下所示:
$items_session = $this->session->userdata('item_names'); unset($items_session[$key][$app_no]); $this->session->set_userdata('item_names',$items_session);
希望这会有所帮助。
答案 1 :(得分:0)
您必须使用unset转到常规PHP。
public function delete_item(){
$app_no = $this->input->post('app_no'); // product id of item
$items_session = $this->session->userdata('item_names');
foreach ($items_session as $key => $value) {
if($value['product_id'] == $app_no){
unset($items_session[$key][$app_no]);
}
}
}