php - 对一列的数组数据进行分组并对另一列的数据求和

标签 php arrays multidimensional-array sum grouping

我的数组数据如下所示:

$array = [
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 1412341234],
    ['name' => 'Bank CIMB Niaga', 'amount' => 532532552], 
    ['name' => 'Bank BRI', 'amount' => 34534534], 
    ['name' => 'Bank CIMB Niaga', 'amount' => 453425243], 
    ['name' => 'Bank BRI', 'amount' => 0], 
    ['name' => 'Bank BNI', 'amount' => 124124], 
    ['name' => 'Bank CIMB Niaga', 'amount' => 352345623], 
    ['name' => 'Bank BCA', 'amount' => 23432423], 
    ['name' => 'Bank Mandiri', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 0], 
    ['name' => 'Bank BCA', 'amount' => 0], 
    ['name' => 'Bank Permata', 'amount' => 352352353],
];

如何根据相同的“银行名称”对“金额”求和。

我的结果应该显示分组名称及其总和:

array (
  'Bank BRI' => 34534534,
  'Bank BCA' => 1435773657,
  'Bank CIMB Niaga' => 1338303418,
  'Bank BNI' => 124124,
  'Bank Mandiri' => 0,
  'Bank Permata' => 352352353,
)

最佳答案

因此,首先您需要 $amountsArray 以某种方式分配您列出的值。然后:

$bankTotals = array();
foreach($amountsArray as $amount)
{
  $bankTotals[$amount['name']] += $amount['amount'];
}

输出:(Demo)

Warning: Undefined array key "Bank BRI"

Warning: Undefined array key "Bank BCA"

Warning: Undefined array key "Bank CIMB Niaga"

Warning: Undefined array key "Bank BNI"

Warning: Undefined array key "Bank Mandiri"

Warning: Undefined array key "Bank Permata"
array (
  'Bank BRI' => 34534534,
  'Bank BCA' => 1435773657,
  'Bank CIMB Niaga' => 1338303418,
  'Bank BNI' => 124124,
  'Bank Mandiri' => 0,
  'Bank Permata' => 352352353,
)

在此之后,$bankTotals 是一个以银行名称为索引的数组,其值为银行的总金额。您可以在此处根据需要使用此数组。

可能有用的一件事是另一个 foreach 循环将其全部打印出来:

foreach($bankTotals as $name => $amount)
{
  echo $name.".....".$amount."\n";
}

关于php - 对一列的数组数据进行分组并对另一列的数据求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286749/

相关文章:

c++ - 用另一个替换多维数组?

php - 如何在 PHP 中按长度对二维数组进行排序?

php - 0% 类 phpunit/xdebug 中的代码覆盖率

php - 具有相同字段名称的 Doctrine 查询生成器

javascript - 在没有引荐来源网址的情况下,Google、Facebook 等如何找出您来自哪个网站?

arrays - 通过唯一键合并 Ruby 中的两个数组

php - FreeTDS mssql_connect 不工作

java - 替换数组中的字符串,其中字符串的部分是 int

perl - 如何验证 Perl 中的数组(列表)中是否存在值?

numpy - 沿 Numpy ndarray 轴的最大值?