2011-08-29 29 views
1

我想刪除除1值之外的數組中的重複值。php array_unique異常

如:

$array = array ("apple", "orange", "orange", "banana", "grapes","grapes", "apple"); 

如何刪除所有重複值,並保持那等於 「蘋果」

$array = array ("apple", "orange", "banana", "grapes", "apple"); 

所有重複的值有大約400個值

+0

你要保持apple'的'位置或事件的根本是多少? – powtac

回答

2
$seen = array() 
foreach ($array as $value) 
    if ($value == 'apple' || !in_array($value, $seen)) 
     $seen[] = $value; 

$看到現在只有唯一的價值,加上蘋果。

+0

和蘋果?那蘋果怎麼樣? –

+0

早點擊更新,在評論前添加該行。 ;) – Lars

+0

謝謝,工作像一個治療 – vxd

0
$array = array ("apple", "orange", "orange", "banana", "grapes","grapes", "apple"); 

$counts = array_count_values($array); 

$new_array = array_fill(0, $counts['apple']-2, 'apple'); // -2 to handle there already being an apple from the array_unique count below. 
$new_array = array_merge(array_unique($array), $new_array); 
+0

:)得到相同的答案:) – powtac

1
$numbers = array_count_values($array); 
$array = array_unique($array); 
$array = array_merge($array, array_fill(1, $numbers['apple'], 'apple'));