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,是哪里不对吗?我看代码没有什么地方是不对的啊
} 展开
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,是哪里不对吗?我看代码没有什么地方是不对的啊
} 展开
展开全部
$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内外循环变量互相干扰了。
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内外循环变量互相干扰了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询