我有一个数组
$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
请帮忙;
答案 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_encode
或array_keys
和array_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);