2013-04-17 57 views
1

我正在嘗試編寫一個函數,它接受一個數組並刪除重複項,並以逗號分隔的字符串形式返回結果。谷歌搜索後,我發現它可能用一行代碼(return implode(「,」,unique_array($ arr));)。但是,這並不能幫助我發現我的原始代碼是錯誤的。因此,也許你可以告訴我在我的原始代碼中的邏輯錯誤,導致它返回所有的值,包括重複?PHP:如何從數組中刪除重複項

謝謝! :-)

<?php 

function GetUniqueValues($arr) { 
    $x=0; 
    foreach($arr as $i) { 
    if(!in_array($i, $arr2)) { 
     $arr2[x]=$i; 
     $x++; 
    } 
    } 

    $str = implode(",",$arr); 

    return $str; 
} 


$arr = array(1,2,2,3,2,4,4,5,4,7,6,8,9); 

echo GetUniqueValues($arr); 

?> 

回答

0
$arr2[x]=$i; 

這是不對的。您錯過了$-簽名。應該是:

$arr2[$x]=$i; 

Btw。你也可以這樣做:

$arr2[]=$i; 
0

$arr2[x]=$i;應該$arr2[$x]=$i;(缺少$

打開錯誤報告並將其設置爲報告所有的錯誤和通知。 PHP會告訴你這些錯誤。

ini_set('display_errors', 1); 
error_reporting(E_ALL);