2011-09-01 221 views
2

我有一串逗號分隔值。唯一數組值

1,2,3,4,4,4,4,4,4,4,4,01633,4,4 

我需要刪除重複的,所以我雖然使用

array_unique($str); 

但是,它不返回任何結果的。所以我決定輸出它看看我有什麼:

print_r($str); 
// returns: 1,2,3,4,4,4,4,4,4,4,4,01633,4,4 

我有點迷路。我檢查了它是否是一個數組,我確定了。以下是如何創建該字符串:

$str = '1,2,3'; 

foreach ($a as $b) { 
    $str.= ','.$b; 
} 

我在這裏錯過了什麼?

回答

2

轉換到一個數組,刪除重複值,轉換成字符串

$str = 'whatever'; 
$arr = explode(',', $str); 
$newArr = array_unique($arr); 
$newStr = implode(',', $newArr); 
+0

我實際測試過,看看它是否是一個數組:is_array($ str)? '數組':'不是數組';並獲得Array ... – santa

+0

@santa,然後跳過第1-2行並使用第3-4行。您不應該將數組值存儲在名爲'$ str'的​​變量中。 – zzzzBov

4
$str = explode(',', $str); // create array 
$newArray = array_unique($str); // then process 

實際上,雖然...只是做你array_unique()$a創建字符串之前。

$a = array_unique($a); 

然後...

foreach ($a as $b) { // and so on 
+1

或者在一行中'$ newArray = array_un ique(explode(',',$ str));'^ _^ – Neal

+0

我實際上最終需要它作爲逗號分隔值,只是沒有重複...我是否必須內爆它呢? – santa

+0

如果你按照上面我提出的第一種方法,你可以使用'implode(',',$ newArray)''創建一個字符串。 – 65Fbef05

1

發生爆炸逗號,使獨特,膠件一起回來:

$str = implode(',', array_unique(explode(',', $str)));