如何修改array_count_values输出

时间:2016-01-14 07:27:53

标签: php arrays

我有一个数组

$array=(1,1,2,3,3,3,4); 

我需要找到每个元素在数组中存在多少次元素。

所以我使用

$occurences = array_count_values($array);

输出

Array
(
    [1] => 2
    [2] => 1
    [3] => 3
    [4] => 1
)

但我需要按照以下格式列出

1 : 2
2 : 1
3 : 3
4 : 1

我该怎么做?

除了使用array_count_values

之外还有其他解决方案

请帮忙;

3 个答案:

答案 0 :(得分:1)

使用foreach迭代每次出现并echo出现。

// If they are in wrong order, sort your array
ksort($occurences);

// Print output
if(count($occurences)>0){
  foreach ($occurences as $key => $value) {
    echo $key.' : '.$value.'<br />';
  }
}

修改

要按出现次数排序,请使用arsort

arsort($occurences);

当然,在打印之前。

如果2:1必须在4:1之前,请使用:

asort($occurences);
arsort($occurences);

答案 1 :(得分:0)

只需使用此循环即可获得您需要的输出

foreach ($occurences as $k => $v) {
    echo "$k : $v <br>";
}

答案 2 :(得分:0)

您可以使用json_encodearray_keysarray_values

<?php 

$array= array(1,1,2,3,3,3,4);
$occurences = array_count_values($array);

$array_keys = array_keys($occurences);
$array_values = array_values($occurences);

for($i=0; $i<count($array_keys); $i++) {
    echo $array_keys[$i].':'.$array_values[$i].'\n';//add \n or \br tag
}

//you can echo json_encode
echo json_encode($occurences);