php while里面再加一个循环

$capacity=array();$capacity=explode('|','1|2|3');$tid=$arcRow['typeid'];$dsql->SetQue... $capacity=array();
$capacity=explode('|','1|2|3');
$tid=$arcRow['typeid'];
$dsql->SetQuery("Select id,ml from #@__capacity where tid='$tid'");
$dsql->Execute();
while($row = $dsql->GetObject()){
foreach($capacity as $i){
//$row->id输出的是 1 2 3 4 等等。。

if($row->id==$i){echo 'y';}else{echo 'n';}
}
}
我的理想输出应该是: y y y n

可是现在却是 : y y y y y y y y y n n n
$capacity里面有多少数字,就出现多少个重复的,
展开
 我来答
百度网友a19d193
2013-05-06 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1451万
展开全部
$capacity=array();
              $capacity=explode('|','1|2|3');
              $tid=$arcRow['typeid'];
              $dsql->SetQuery("Select id,ml from #@__capacity where tid='$tid'");
              $dsql->Execute();
              while($row = $dsql->GetObject()){
                    if(in_array($row->id, $capacity)) {
                        echo 'y';
                    } else {echo 'n';}
                }

这样就行了。

你的原始代码对每行输出了$capacity数组长度次的结果,不过我觉得输出应该是ynn, nyn, nny, nnn而不是yyy,yyy,yyy,nnn才对

xujinzi123
2013-05-06 · TA获得超过424个赞
知道小有建树答主
回答量:756
采纳率:68%
帮助的人:409万
展开全部
你foreach 里面是$capacity 这个数组,这个数组有3个成员,然后foreach循环的时候肯定是循环3此,那怎么可能出现4位数呢,要实现你这个结果,
不应该用foreach 直接判断你的$row->id 是否在数组里面就行 用
if(in_array($row->id,$capactity)){
echo 'y';
}esle{
echo 'N'}
能和高手想法一样我也很开心,比他慢发布了一会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luocongjay
2013-05-06 · TA获得超过949个赞
知道小有建树答主
回答量:1382
采纳率:33%
帮助的人:444万
展开全部
while 改成 if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
prowayne
2013-05-06 · TA获得超过181个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:188万
展开全部
是的, foreach()也是循环,和while差不多,用来循环数组的,数组有几个元素,就循环几次
追问
如何解决,可以改变一下写法,只要功能上实现即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式