php数组_唯一,但有例外

php数组_唯一,但有例外,php,arrays,array-unique,Php,Arrays,Array Unique,我想删除数组中除1个值以外的重复值 例如: 如何删除所有重复值并保持所有重复值等于“apple” 大约有400个值 $seen = array() foreach ($array as $value) if ($value == 'apple' || !in_array($value, $seen)) $seen[] = $value; $seen现在将只有唯一的值,加上苹果。要保留apple的位置,还是只保留出现的次数?以及苹果?苹果呢?提前一秒点击更新,在你的评论之

我想删除数组中除1个值以外的重复值

例如:

如何删除所有重复值并保持所有重复值等于“apple”

大约有400个值

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

$seen现在将只有唯一的值,加上苹果。

要保留
apple
的位置,还是只保留出现的次数?以及苹果?苹果呢?提前一秒点击更新,在你的评论之前添加了这一行。;)
$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);
$seen = array()
foreach ($array as $value)
    if ($value == 'apple' || !in_array($value, $seen))
        $seen[] = $value;
$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);
$numbers = array_count_values($array);
$array = array_unique($array);
$array = array_merge($array, array_fill(1, $numbers['apple'], 'apple'));