Php 检查数组中特定值的多少倍

Php 检查数组中特定值的多少倍,php,arrays,count,Php,Arrays,Count,我有一个名为$uid的数组。如何检查$uid数组中的值“12”的次数 $repeated = array(); foreach($uid as $id){ if (!isset($repeated[$id])) $repeated[$id] = -1; $repeated[$id]++; } 例如,这将导致 array( 12 => 2 14 => 1 ) 使用。比如说, $freqs = array_count_values($uid); $freq

我有一个名为$uid的数组。如何检查$uid数组中的值“12”的次数

$repeated = array();
foreach($uid as $id){
    if (!isset($repeated[$id])) $repeated[$id] = -1;
    $repeated[$id]++;
}
例如,这将导致

array(
   12 => 2
   14 => 1
)
使用。比如说,

$freqs = array_count_values($uid);
$freq_12 = $freqs['12'];
有几种方法

$cnt = count(array_filter($uid,function($a) {return $a==12;}));

或任何其他方法。

使用该函数


有不同的解决方案:

$count = count(array_filter($uid, function($x) { return $x==12;}));

或者只是一个for循环

for($i=0, $last=count($uid), $count=0; $i<$last;$i++)
    if ($uid[$i]==12) $count++;
非常简单:

$uid= array(12,23,12,4,2,5,56);
$indexes = array_keys($uid, 12); //array(0, 1)
echo count($indexes);

数组\u计数\u值在这里不起作用。我不喜欢。。array\u count\u value($string)//或12作为$string当前版本的PHP不允许您在函数调用后使用
[]
表示法。@Hammerite这很愚蠢,更正了
array\u count\u values()
如果计数为零,则不可靠,因为只有找到的值才成为键。
array\u count\u values()如果计数为零,则不可靠,因为只有找到的值成为键。
array\u count\u values()
如果计数为零,则不可靠,因为只有找到的值成为键。
array_reduce($uid, function($c, $v) { return $v + ($c == 12?1:0);},0)
for($i=0, $last=count($uid), $count=0; $i<$last;$i++)
    if ($uid[$i]==12) $count++;
$count=0;
foreach($uid as $current)
    if ($current==12) $count++;
$uid= array(12,23,12,4,2,5,56);
$indexes = array_keys($uid, 12); //array(0, 1)
echo count($indexes);