2012-05-28 79 views
0

我編寫了一個PHP腳本,爲網站上的列表分配一個分數並將其分配到結果頁面。我已經掌握了它的工作原理,它顯示了分數和細節,但是它一遍又一遍地列出了相同的結果。如何停止在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

無處不在您的循環中您是否更改$ finalScoare或$ showResults或$ scoreBox的值。你想知道爲什麼沒有改變? –

回答

1

問題是,您將當前的$adId添加到重複列表之前,您檢查它是否存在 - 當然,它會一直存在。

在一個字符串中存儲一串數字,每次都是這樣,有點奇怪,用一個數組來代替。你也不需要通過所有的項目手動環,只需使用in_array()

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

$dupCatch[] = $adId; 

不用說:這將是一個更好的主意來解決,讓您在第一時間重複結果的一部分。

+0

嗨,有一個流氓「。」飛來飛去,正在複製第一個條目。我對PHP並不陌生,但之前從未使用過爆炸函數,並錯誤地認爲我可以使用它。感謝您的解決方案男人工作的魅力! – JackWillDavis

1

您可以嘗試使用array_unique從PHP一側或在MySQL中使用獨特的屬性,在現場這樣重複甚至可以將它們插入之前阻止。