PHP foreach嵌套if else问题

$exist=true;foreach($cartinfoas$value){$exist=true;foreach($cartinfoas$value){if($val... $exist=true;
foreach($cartinfo as $value){
$exist=true;
foreach($cartinfo as $value){
if($value['pid']==$userId){
$value['quantity']+=1;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");
break;
}

else{
$exist=false;

}
}
if(!$exist){
$cartinfo[]=$row;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");}

我想实现的是foreach循环里,如果遍历的id跟当前的id一样的,数组里的数量+1,然后跳出循环,去cart页面。如果遍历完所有id,没有一个跟当前id一样的,把这组数组加入。 可是现在我运行的结果是,只要到else好像就不循环了,举个例子,如果是产品1,2已经存在。 我加入第三个个产品是id1,那没问题会进入到if循环,数量+1并跳出循环,因为遍历的第一条就是产品1.但是一旦我第三个产品是产品2, 这个只遍历到产品1到了else就跳出来了,结果就变成产品1,产品2,产品2.我希望的是 产品1,产品2,然后产品2的数量已经加1,是哪里不对吗?我看代码没有什么地方是不对的啊
}
展开
 我来答
hubore
2018-08-01 · 超过25用户采纳过TA的回答
知道答主
回答量:80
采纳率:78%
帮助的人:18.9万
展开全部
$exist=false;
foreach($cartinfo as $k=>$value){

if($value['pid']==$userId){
$cartinfo[$k]['quantity']+=1;
$exist=true;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");
break;
}
}
if(!$exist){
$cartinfo[]=$row;
$cart_ser=serialize($cartinfo);
setcookie('Cart',$cart_ser,time()+36000);
header("location:cart.php");}
问题1: 循环嵌套外层除了增加重复执行,没有作用,2内外循环变量互相干扰了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式