首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法将foreach键自动递增为值

无法将foreach键自动递增为值
EN

Stack Overflow用户
提问于 2019-06-13 02:58:56
回答 1查看 54关注 0票数 -1

我使用select group by查询,因为我在列中有重复的值,并使用foreach循环为每个增量生成每个结果。然而,我得到了正确的结果,但不是增量,我还需要将我的结果与(if语句)进行比较。

$sqlr = mysql_query ("SELECT lati, COUNT(*) FROM upload GROUP BY lati HAVING COUNT(lati) > 1;"); 

while ($row = mysql_fetch_array($sqlr)) 
{

    $countedlati = array($row['lati']);
    foreach ($countedlati as $key => $lativalue) {
         echo $key ."</br>".$lativalue ."</br>";
    }

}

结果

我想要的是这个结果

0
1.3048
1
3.140583

然后比较if语句中的结果

for( $i=$offset; $i<$end; $i++ )
{
   $data = $res[$i];

   if($data['latitude'] == $lativalue){
    $icon = "upload/yellow.png";
   }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 03:12:57

当你做$countedlati = array($row['lati']);时,你用1个元素定义数组-这就是为什么你每次都得到0的原因。

您应该将元素添加到一个数组中,然后对其进行迭代。考虑以下示例:

$sqlr = mysql_query ("SELECT lati, COUNT(*) FROM upload GROUP BY lati HAVING COUNT(lati) > 1;"); 

$latis = array(); // init empty array
while ($row = mysql_fetch_array($sqlr)) {   
    $latis[] = $row['lati']; // append the element to the array
}

现在,您可以像这样执行foreach循环:

foreach($latis as $lati) {
   if($lati == $lativalue){
       $icon = "upload/yellow.png";
   }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56568753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档