PHP中数组值的重复总次数

时间:2010-03-04 12:16:33

标签: php arrays

我有一个像:

这样的数组
[Organization_id] => Array
        (
            [0] => 4
            [1] => 4
            [2] => 2
            [3] => 4
            [4] => 2
            [5] => 4
            [6] => 4
            [7] => 4  
            [8] => 2 
        )

现在我只想知道谷歌'4'& '2'确实出现在这个数组中,即:我的结果必须是这样的东西:

[id_repeat] => Array
            (
                [0] => 6
                [1] => 3
            )

其中,第0个位置代表值'4'和'的重复总次数。第一个位置将代表值'2'的重复总次数。

但请记住,这些值不是硬编码的,这些值将来自某些表格。

提前致谢。

3 个答案:

答案 0 :(得分:7)

使用array_count_values()

此功能:

  

从输入中返回值的关联数组,作为,并将其计数作为值。

样本用法:

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?> 

以上示例将输出:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

答案 1 :(得分:1)

你可以这样做:

$freq_array = array_count_values($Organization_id);

$id_repeat = array(
 $freq_array[4],
 $freq_array[2]
);

答案 2 :(得分:0)

以下是一个代码段,它将按照b中出现的顺序为输入数组a中的每个元素创建频率数组a。请注意,它不会计算输入中的null值。这是在javascript,因为我不擅长PHP。

var a = [4, 4, 2, 4, 2, 4, 3, 3, 3, 5 , 4];
var b = [];
for(var i = 0; i < a.length; i++)
{
  if(a[i] != null)
    b.push(1);
  else
    continue;
  for(var j = i + 1; j < a.length; j++)
  {
    if(a[i] == a[j])
    {
      b[b.length - 1]++;
      a[j] = null;
    }  
  }
}
console.log(b.join());//5,2,3,1