2010-09-05 92 views
4

好了,所以我得有一噸在它的隨機數,像這樣的數組...獲取數組中每個唯一值的總數?

$array = array(134, 12, 54, 134, 22, 22, 1, 9, 45, 45, 12, 134, 45, 134); 

我需要做的,是找出哪些號碼都包含在我的陣列,如果一個數字在數組中重複,我想知道在該數組中找到了多少次該數字。因此,以上面列出的陣列,我需要的結果是這樣的:

134: 4 
12: 2 
54: 1 
22: 2 
1: 1 
9: 1 
45: 3 
etc. 

任何明智的想法,這可能會實現?

謝謝!

回答

8

請參閱array_count_values

<?php 
print_r(array_count_values(
     array(134, 12, 54, 134, 22, 22, 1, 9, 45, 45, 12, 134, 45, 134))); 

給出:

 
Array 
(
    [134] => 4 
    [12] => 2 
    [54] => 1 
    [22] => 2 
    [1] => 1 
    [9] => 1 
    [45] => 3 
) 
+0

在這裏,我正在寫一個函數來回答作者的問題。不知道這個功能是否存在。謝謝! – 2010-09-05 03:16:42

2

使用array_count_values()計算每個唯一值的出現:

$counts = array_count_values($array); 
var_dump($counts); 

輸出:

array(7) { 
    [134]=> 
    int(4) 
    [12]=> 
    int(2) 
    [54]=> 
    int(1) 
    [22]=> 
    int(2) 
    [1]=> 
    int(1) 
    [9]=> 
    int(1) 
    [45]=> 
    int(3) 
} 
2

您可以使用函數:

array_count_values($array)