检查数组PHP中特定值的次数

时间:2011-10-31 22:04:35

标签: php arrays count

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

6 个答案:

答案 0 :(得分:26)

有几种方式。

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

$tmp = array_count_values($uid);
$cnt = $tmp[12];

或任何其他方法。

答案 1 :(得分:10)

使用array_count_values()。例如,

$freqs = array_count_values($uid);
$freq_12 = $freqs['12'];

答案 2 :(得分:4)

很简单:

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

答案 3 :(得分:2)

使用功能array_count_values

$uid_counts = array_count_values($uid);
$number_of_12s = $uid_counts[12];

答案 4 :(得分:2)

对此有不同的解决方案:

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

array_reduce($uid, function($c, $v) { return $v + ($c == 12?1:0);},0)

或只是一个for循环

for($i=0, $last=count($uid), $count=0; $i<$last;$i++)
    if ($uid[$i]==12) $count++;

或foreach

$count=0;
foreach($uid as $current)
    if ($current==12) $count++;

答案 5 :(得分:0)

$repeated = array();
foreach($uid as $id){
    if (!isset($repeated[$id])) $repeated[$id] = -1;
    $repeated[$id]++;
}

将导致例如

array(
   12 => 2
   14 => 1
)