当我运行下面的查询时,我不断获得两次值。该数组包含 [1,2,1,2]
并且它应该仅包含值 [1,2]
。有人可以向我解释为什么我会得到重复的值吗?
$grusnro = 0;
while (!empty($grus[$grusnro ]))
{
$catid="SELECT cat_id FROM catgroup WHERE group_id='$grus[$grusnro]'";
$catidsult=mysql_query($catid);
while($grunamerow = mysql_fetch_array($catidsult, MYSQL_ASSOC))
{
$catgroup[]=$grunamerow['cat_id'];
}
$grusnro = $grusnro +1;
}
当我从命令行运行时,我得到结果[1,2]
。我已经检查过 group_id
值在 $grus 数组中仅出现一次。那么为什么会重复呢?
最佳答案
我建议您使用这个简化版本的代码,它的性能会更好:
$catgroup = array(); //Making sure $catgroup is an empty array
if(!empty($grus)) {
//Fetch all groups in the same query
$grusids = implode("','", $grus);
$catid = 'SELECT DISTINCT cat_id FROM catgroup WHERE group_id IN(\''.$grusids.'\')';
$catidsult = mysql_query($catid);
while($grunamerow = mysql_fetch_array($catidsult, MYSQL_ASSOC))
{
$catgroup[] = $grunamerow['cat_id'];
}
}
请注意在 SQL 中使用 DISTINCT 关键字来仅获取唯一的 cat_ids。
关于php - : Duplicate values in array when query is run 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6056290/