PHP前端开发

PHP数组统计:如何同时统计重复值数量并计算对应金额?

百变鹏仔 3天前 #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],];