PHP bir diziden yinelenen değerleri kaldırmak ve tekrarlamasını saymak nasıl?

4 Cevap php

How to remove duplicate values from an array in PHP and count the occurrence of every element? I have this array

  • foo
  • bar
  • foo

Ben sonuç böyle dizide olmak istiyorum

        value   freq

        ----    ----

        foo       2

        bar       1

Teşekkürler

4 Cevap

çok basit, php var işlevi

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

Yukarıdaki kodun çıktısı olacak:

Array ( [Cat] => 1 [Dog] => 2 [Horse] => 1 )

Sen array_count_values(), bir array_unique() izledi istiyorum.

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

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

verir:

Array ( [foo] => 2 [bar] => 1 )
Array ( [0] => foo [1] => bar )

Tablo kullanımı array_unique() function çiftleri kaldırmak için.

Böyle bir şey, belki de (denenmemiş)

$freq = array();
foreach($arr as $val) {
	$freq[$val] = 0;
}
foreach($arr as $val) {
	$freq[$val]++;
}