使用 PHP 计算数组中特定值的出现次数

2022-08-30 14:25:52

我正在尝试找到一个本机PHP函数,该函数将允许我计算数组中特定值的出现次数。我熟悉array_count_values()函数,但它返回数组中所有值的计数。是否有函数允许您传递值并仅返回该特定值的实例计数?例如:

$array = array(1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7);

$instances = some_native_function(6, $array);  //$instances will be equal to 4

我知道如何创建自己的功能,但为什么要重新发明轮子呢?


答案 1
function array_count_values_of($value, $array) {
    $counts = array_count_values($array);
    return $counts[$value];
}

不是本地的,但来吧,它很简单。;-)

或者:

echo count(array_filter($array, function ($n) { return $n == 6; }));

艺术

echo array_reduce($array, function ($v, $n) { return $v + ($n == 6); }, 0);

艺术

echo count(array_keys($array, 6));

答案 2

此解决方案可能接近您的要求

$array = array(1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7);
print_r(array_count_values($array));

Result:

Array
( [1] => 1 ,[2] => 1 , [3] => 3, [4] => 2,[5] =>1, [6] => 4, [7] => 1 )

了解详情