这是数组和代码
$array = array(1, 3, 3, 7, 9, 9, 9, 9, 11, 11, 12, 14);
$c = array_count_values($array);
print_r($c);
我得到的输出像:
Array
(
[1] => 1
[3] => 2
[7] => 1
[9] => 4
[11] => 2
[12] => 1
[14] => 1
)
我想得到大于或等于2的值的数量,这就是([3],[9],[11])
:
Duplicate groups: 3
使用array_filter
函数过滤掉重复项:
$array = array(1, 3, 3, 7, 9, 9, 9, 9, 11, 11, 12, 14);
$c = array_count_values($array);
$c = array_filter($c, function($v){return $v > 1;});
$c = count($c);
echo "Duplicate groups: $c";
我想得到>2([3],[9],[11])的值的数量:
你的意思是大于或等于2。在这种情况下,它将我们引向>=
:
$array = array(1, 3, 3, 7, 9, 9, 9, 9, 11, 11, 12, 14);
$c = array_count_values($array);
$r = array();
foreach($c as $k => $v) {
if($v >= 2) {
$r[$k] = $v;
}
}
print "Duplicate groups: " . count($r);
改进版:
$array = array(1, 3, 3, 7, 9, 9, 9, 9, 11, 11, 12, 14);
$array1 = array_count_values($array);
$array2 = array();
foreach($array1 as $key => $value){
if($value > 1){
$array2[$key] = $value;
}
}
print "Duplicate groups: ".count($array2);