如果使用PHP的In_数组为true,如何向qty添加1
我正在尝试将1添加到如果使用PHP的In_数组为true,如何向qty添加1,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在尝试将1添加到会话['cart']['qty']中,如果它不是新条目,并且如果它是新条目,则只会将该条目添加到会话['cart'] if(!isset($\u会话['cart'])){ $item=array('pid'=>$p['productID'], “数量”=>1 ); $\u会话['cart'][0]=$item; }否则{ $item_id=array_列($_SESSION['cart'],“pid”); if(在数组中($p['productID',$item\u id))
会话['cart']['qty']
中,如果它不是新条目,并且如果它是新条目,则只会将该条目添加到会话['cart']
if(!isset($\u会话['cart'])){
$item=array('pid'=>$p['productID'],
“数量”=>1
);
$\u会话['cart'][0]=$item;
}否则{
$item_id=array_列($_SESSION['cart'],“pid”);
if(在数组中($p['productID',$item\u id)){
$to_update='数量';
$new\u数量=5;
$base=$\会话['cart']['pid']['qty'];
}否则{
$count=count($_会话['cart']);
$item=array('pid'=>$p['productID'],
“数量”=>1
);
$\会话['cart'][$count]=$item;
}
}
您可以使用$pid作为唯一的索引来跟踪
$pid=$p['productID'];
if(!isset($_SESSION['cart'][$pid])){
$item = array(
'pid' => $pid,
'qty' => 1
);
$_SESSION['cart'][$pid] = $item;
}else{
/*
* add 1 qty
*/
if(isset($_SESSION['cart'][$pid])) {
$_SESSION['cart'][$pid]['qty']= ($_SESSION['cart'][$pid]['qty'] +1);
}
}
您也可以使用类似的减少数量 您没有更改会话变量。试试这个:
if (!isset($_SESSION['cart'])) {
$item = array('pid' => $p['productID'],
'qty' => 1
);
$_SESSION['cart'][0] = $item;
} else {
$item_id = array_column($_SESSION['cart'], "pid");
if (in_array($p['productID'], $item_id)) {
$new_qty = 5;
$_SESSION['cart'][$p['productID']]['qty'] += $new_qty;
} else {
$count = count($_SESSION['cart']);
$item = array('pid' => $p['productID'],
'qty' => 1
);
$_SESSION['cart'][$count] = $item;
}
}
这一行没有意义
$base = $_SESSION['cart']['pid']['qty'];
多维数组不是这样工作的。您正试图从数组
$\u会话['cart']['pid']
访问密钥qty
,但该密钥不存在。这两个键是兄弟键。谢谢您的回答,但如果我选择购买两个产品,并尝试增加我已添加到购物车中的一个产品的数量,则会出现另一个问题。它不会合并,它将创建新的产品row@EcnerolOdirrag好的,当然,只要你选择的答案对你有用!到底发生了什么?