php 数组foreach循环的问题
<?phpinclude("conn.php");$sanma=array("111","112");foreach($sanmaas$num){$result=mysq...
<?php
include ("conn.php");
$sanma = array("111","112");
foreach( $sanma as $num ) {
$result = mysql_query("SELECT * FROM kjnum where zuxuan='$num'");
while($row = mysql_fetch_array($result)){
$arr[] = $row['id'];
} //把查询到的id放到数组arr
$count =1; //根据数组arr里面的数据开始进行下面的运算
$v1=0;
foreach ($arr as $v){
if($count){
$v1=$v;
$count=0;
}
$newitem=$v-$v1;
$v1=$v;
$addarr[]=$newitem;
}
echo max($addarr);//输出的就是最大值
echo "</br>";
}
?>
看第三行$sanma = array("111","112","113","114","115","116");这个是条件。 为啥只计算了第一个,第二个以后没有参,但是结果能出来,都是第一个的。求高人看看是不是循环出问题了
foreach套foreach,糊涂了 展开
include ("conn.php");
$sanma = array("111","112");
foreach( $sanma as $num ) {
$result = mysql_query("SELECT * FROM kjnum where zuxuan='$num'");
while($row = mysql_fetch_array($result)){
$arr[] = $row['id'];
} //把查询到的id放到数组arr
$count =1; //根据数组arr里面的数据开始进行下面的运算
$v1=0;
foreach ($arr as $v){
if($count){
$v1=$v;
$count=0;
}
$newitem=$v-$v1;
$v1=$v;
$addarr[]=$newitem;
}
echo max($addarr);//输出的就是最大值
echo "</br>";
}
?>
看第三行$sanma = array("111","112","113","114","115","116");这个是条件。 为啥只计算了第一个,第二个以后没有参,但是结果能出来,都是第一个的。求高人看看是不是循环出问题了
foreach套foreach,糊涂了 展开
1个回答
展开全部
你在第一foreach的第一行加上print_r("<<{$num}>>");
并在while执行完成后加是echo "[[" . count($arr) . "]]";
执行一下,看看打印出来的结果,再分析错在哪里,比如有可能数据库里有111的数据
并在while执行完成后加是echo "[[" . count($arr) . "]]";
执行一下,看看打印出来的结果,再分析错在哪里,比如有可能数据库里有111的数据
更多追问追答
追问
比方有2个条件111和112
不加你说的输出为
1331
1331
加上后就是输出为下面
>1331
>1331
[[989]]
其实111的计算是对的。112的计算就是错的,还是条件111的结果,并不是112的结果。
追答
$result = mysql_query("SELECT * FROM kjnum where zuxuan='$num'");
改为
$sql = "SELECT * FROM kjnum where zuxuan='$num'";
print_r("[]");
$result = mysql_query($sql);
看看$sql是什么
还有,在第一个foreach的第一行要加上$arr = array(),否则111的结果会影响113的结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询