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里面有多少数字,就出现多少个重复的, 展开
$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里面有多少数字,就出现多少个重复的, 展开
4个回答
展开全部
$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才对
展开全部
你foreach 里面是$capacity 这个数组,这个数组有3个成员,然后foreach循环的时候肯定是循环3此,那怎么可能出现4位数呢,要实现你这个结果,
不应该用foreach 直接判断你的$row->id 是否在数组里面就行 用
if(in_array($row->id,$capactity)){
echo 'y';
}esle{
echo 'N'}
能和高手想法一样我也很开心,比他慢发布了一会
不应该用foreach 直接判断你的$row->id 是否在数组里面就行 用
if(in_array($row->id,$capactity)){
echo 'y';
}esle{
echo 'N'}
能和高手想法一样我也很开心,比他慢发布了一会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while 改成 if
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的, foreach()也是循环,和while差不多,用来循环数组的,数组有几个元素,就循环几次
追问
如何解决,可以改变一下写法,只要功能上实现即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询