php array_unique с исключениями - PullRequest
       9

php array_unique с исключениями

1 голос
/ 30 августа 2011

Я хочу удалить повторяющиеся значения в массиве, кроме 1 значения.

Например:

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

Как я могу удалить все повторяющиеся значения и сохранить все повторяющиеся значения, которые равны «яблоку»

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

Есть около 400 значений

Ответы [ 3 ]

2 голосов
/ 30 августа 2011
$seen = array()
foreach ($array as $value)
    if ($value == 'apple' || !in_array($value, $seen))
        $seen[] = $value;

$ увиденное теперь будет иметь только уникальные значения плюс яблоко.

1 голос
/ 30 августа 2011
$numbers = array_count_values($array);
$array = array_unique($array);
$array = array_merge($array, array_fill(1, $numbers['apple'], 'apple'));
0 голосов
/ 30 августа 2011
$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);
...