如何在PHP结果中停止列出重复项?

时间:2012-05-28 15:30:59

标签: php search

我编写了一个PHP脚本,为网站上的列表分配分数并将其分配到结果页面。我有它的工作,它显示了分数和细节,但它一直在反复列出相同的结果。

我无法解决它正在做的事情但是我希望可以阻止重复列表的一小段代码。任何人都可以给它一个调整,看看我是否会在某个地方拧干?

守则是:

$dupCatch .= $adId.","; 
$dupResults = explode(',', $dupCatch);

foreach($dupResults as $dupResult){

  if($dupResult == $adId){
    print "";
  } else {
    print $showResults;
    $scoreBox = 'THIS IS THE SCORE: '  . $finalScore . '';
    print $scoreBox;
  }

}

提前致谢!

杰克

2 个答案:

答案 0 :(得分:1)

您可以尝试从php端使用array_unique或在mysql中使用字段中的unique属性,这样可以在插入之前防止重复。

答案 1 :(得分:1)

问题是,您在之前将当前$adId添加到重复列表中,检查它是否存在 - 当然,它总是如此。

在字符串中存储一堆数字,每次explode,有点奇怪,使用数组代替。您也无需手动遍历所有项目,只需使用in_array()

即可
if( !in_array($adId, $dupCatch) ){
    print $showResults;
    $scoreBox = 'THIS IS THE SCORE: '  . $finalScore . '';
    print $scoreBox;
}

$dupCatch[] = $adId;

毋庸置疑:最好先修复一下可以为您提供重复结果的部分。