PHP数组统计:如何同时统计重复值数量并计算对应金额?
如何统计php数组中的重复值和计算金额
在php中,要统计数组中重复值的数量,可以使用 array_count_values() 函数。假设具有如下形式的数组 $array:
$array = [ ['price' => 100, 'org_name' => '部门1'], ['price' => 100, 'org_name' => '部门2'], ['price' => 200, 'org_name' => '部门2'], ['price' => 500, 'org_name' => '部门1'],];
要统计 org_name 字段的重复值,可以使用以下代码:
$counts = array_count_values(array_column($array, 'org_name'));
这将生成以下 $counts 数组:
立即学习“PHP免费学习笔记(深入)”;
$counts = [ '部门1' => 2, '部门2' => 2,];
接下来,为了计算每个部门的总金额,可以使用 foreach 循环:
$prices = [];foreach ($array as $item) { if (isset($prices[$item['org_name']])) { $prices[$item['org_name']] += $item['price']; } else { $prices[$item['org_name']] = $item['price']; }}
这将生成以下 $prices 数组:
$prices = [ '部门1' => 600, '部门2' => 300,];
最后,可以合并 $counts 和 $prices 数组以生成所需的统计结果:
$results = [];foreach ($counts as $org_name => $count) { $results[$org_name] = [ 'count' => $count, 'price' => $prices[$org_name], ];}
这将产生以下结果:
$results = [ '部门1' => ['count' => 2, 'price' => 600], '部门2' => ['count' => 2, 'price' => 300],];