获取数组中每个唯一值的总数?

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.

你有什么好主意来实现这个吗?
谢谢!
3个回答

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)));

输出结果如下:

数组
(
    [134] => 4
    [12] => 2
    [54] => 1
    [22] => 2
    [1] => 1
    [9] => 1
    [45] => 3
)

以上是一个PHP数组的输出结果,其中每个键值对表示数组中一个元素的值和索引。


我在这里编写一个函数来回答作者的问题。之前不知道这个函数的存在。谢谢! - Russell Dias

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接