2011-10-31 4 views

Trả lời

25

Một số cách.

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

hoặc

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

hoặc bất kỳ số lượng các phương pháp khác.

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

điều này sẽ dẫn ví dụ như trong

array(
    12 => 2 
    14 => 1 
) 
8

Sử dụng array_count_values(). Ví dụ:

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

array_count_values ​​sẽ không làm việc ở đây. Tôi không làm .. array_count_values ​​($ string) // hoặc 12 là $ string – DanielOlivasJr

+2

Phiên bản hiện tại của PHP không cho phép bạn sử dụng ký hiệu '[]' sau khi thực hiện cuộc gọi chức năng. – Hammerite

+0

@Hammerite ngu ngốc, sửa chữa –

2

có giải pháp khác nhau như sau:

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

hoặc

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

hay chỉ là một vòng lặp for

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

hoặc một foreach

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

Rất đơn giản:

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

công việc tuyệt vời .. @ Baum & @MD –