Проверьте, сколько раз определенное значение в массиве PHP

У меня есть массив с именем $ uid. Как я могу проверить, сколько раз значение «12» находится в моем массиве $ uid?

Несколько путей.

$cnt = count(array_filter($uid,create_function('$a','return $a==12;'))); 

или

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

или любое количество других методов.

Используйте array_count_values() . Например,

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

Используйте функцию array_count_values .

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

есть другое решение:

 $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++; 

Очень просто:

 $uid= array(12,23,12,4,2,5,56); $indexes = array_keys($uid, 12); //array(0, 1) echo count($indexes); 
 $repeated = array(); foreach($uid as $id){ if (!isset($repeated[$id])) $repeated[$id] = -1; $repeated[$id]++; } 

который, например, будет

 array( 12 => 2 14 => 1 )