我正在尝试获取关键数据的数量并将其汇总并显示。我需要对php数组中的所有关键数据进行计数,并显示如下所示的输出,但我无法获得所有的数组计数。
Output:
chromi: 7
detruch: 6
detroy: 4
答案 0 :(得分:2)
更好的方法是获取值数组并使用 array-count-values :
$array = [
['someKey' => 'Value 1'],
['someKey1' => 'Value 1'],
['someKey2' => 'Value 2'],
['someKey3' => 'Value 3'],
];
$arr = array_map(function ($e) {return reset($e);},$array);
print_r(array_count_values($arr));
输出将是:
Array
(
[Value 1] => 2
[Value 2] => 1
[Value 3] => 1
)
我只是改善@Qirel的答案。此版本可以支持多值计数。现场演示:3v4l
答案 1 :(得分:1)
环绕数组,使用reset()
选择第一个值,然后计算$result
数组的索引。
$array = [
['someKey' => 'Value 1'],
['someKey1' => 'Value 1'],
['someKey2' => 'Value 2'],
['someKey3' => 'Value 3'],
];
$result = [];
foreach ($array as $v) {
$value = reset($v);
if (!isset($result[$value]))
$result[$value] = 0;
$result[$value] += 1;
}
print_r($result);
答案 2 :(得分:0)
首先用值翻转键,然后循环数组以增加计数器:
尝试以下代码段:
$chromi = 0 ;
$detruch = 0 ;
$detroy = 0;
$data = array_flip($data);
foreach($data as $key=>$value){
if($key=='chromi'){
$chromi++;
}
else if ($key=='chromi'){
$chromi++
}
else if ($key=='detroy'){
$detroy++
}
}