0

我编写了一个 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;
  }

}

提前致谢!

杰克

4

2 回答 2

1

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

于 2012-05-28T15:36:23.190 回答
1

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

将一堆数字存储在一个字符串中,explode每次都 ing 有点奇怪,请改用数组。您也不需要手动遍历所有项目,只需使用in_array()

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

$dupCatch[] = $adId;

不用说:首先修复给您提供重复结果的部分会是一个更好的主意。

于 2012-05-28T15:48:04.740 回答