无法在foreach键中自动增加值

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (5)

我通过查询使用选择组,因为我在列中有重复值,并且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";
   }

}
提问于
用户回答回答于

当你$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";
   }
}

扫码关注云+社区

领取腾讯云代金券