2016-04-02 72 views
-2

我有一個用逗號分隔的數字的數組,我想刪除所有重複的數字。方法低於最佳選擇還是有更聰明的方法?PHP從數組中刪除重複的值

$filter_tags_array[] = '4,6,2,5,8'; 
$filter_tags_array[] = '6,8,1,3,5,7,2,4'; 
$filter_tags_array[] = '2,4,1,3,5'; 
$filter_tags_array[] = '6,3,5,8,2,4'; 
$filter_tags_array[] = '2,8,11,4,9,12'; 
$filter_tags_array[] = '9,11,2,8,10,12,4'; 

$tags_id = ''; 
foreach($filter_tags_array as $filter_tags) { 
    $tags_id .= $filter_tags . ','; 
} 

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

echo "<pre>"; 
print_r($tags_id); 

print_r的結果:4,6,2,5,8,1,3,7,11,9,12,10,

+0

的'foreach'迴路可以通過另一'implode'調用所替換。 '$ tags_id = implode(',',$ filter_tags_array);'。 – Amber

+0

謝謝琥珀! – petsk

回答

1

這應該爲你工作,看到這裏

$filter_tags_array[] = '4,6,2,5,8'; 
$filter_tags_array[] = '6,8,1,3,5,7,2,4'; 
$filter_tags_array[] = '2,4,1,3,5'; 
$filter_tags_array[] = '6,3,5,8,2,4'; 
$filter_tags_array[] = '2,8,11,4,9,12'; 
$filter_tags_array[] = '9,11,2,8,10,12,4'; 

$tags_id = implode(',',array_unique(explode(',', (implode(',', $filter_tags_array))))); 

print($tags_id); 
2

這將是更好地破滅的陣列,而不是連接每個字符串。這是因爲php每次都必須創建一個新字符串。

https://3v4l.org/fUEtn