Как удалить повторяющиеся значения из массива в PHP и подсчитать вхождение? - PullRequest
3 голосов
/ 05 августа 2009

Как удалить повторяющиеся значения из массива в PHP и подсчитать вхождение каждого элемента? У меня есть этот массив

  • Foo
  • бар
  • Foo

Я хочу, чтобы результат был в массиве вот так

        value   freq

        ----    ----

        foo       2

        bar       1

Спасибо

Ответы [ 4 ]

7 голосов
/ 05 августа 2009

так просто, у php есть функция

$a=array("Cat","Dog","Horse","Dog");
    print_r(array_count_values($a));

Вывод кода выше будет:

Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )  
5 голосов
/ 05 августа 2009

Вы хотите array_count_values ​​() , за которым следует array_unique () .

$arr = array('foo','bar','foo');
print_r(array_count_values($arr));

$arr = array_unique($arr);
print_r($arr);

дает:

Array ( [foo] => 2 [bar] => 1 )
Array ( [0] => foo [1] => bar ) 
1 голос
/ 05 августа 2009

Чтобы удалить дубликаты из таблицы, используйте функцию array_unique () .

0 голосов
/ 05 августа 2009

Нечто подобное возможно (не проверено)

$freq = array();
foreach($arr as $val) {
    $freq[$val] = 0;
}
foreach($arr as $val) {
    $freq[$val]++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...