将一列上的数组数据分组并对另一列中的数据求和以形成平面关联数组
我的数组数据如下所示:
$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,
)
I have my array data as shown below:
$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],
];
How to sum 'amount' based on same 'bank name'.
My result should show grouped names and their summed amount:
array (
'Bank BRI' => 34534534,
'Bank BCA' => 1435773657,
'Bank CIMB Niaga' => 1338303418,
'Bank BNI' => 124124,
'Bank Mandiri' => 0,
'Bank Permata' => 352352353,
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
因此,首先您需要
$amountsArray
以某种方式分配您列出的值。然后:输出: (Demo)
之后,
$bankTotals
是一个索引数组银行名称,以及银行总金额。您可以从这里使用您认为合适的数组。可能有用的一件事是另一个
foreach
循环来将其全部打印出来:So, first you need
$amountsArray
to get assigned the values you listed, somehow. Then:Output: (Demo)
After this,
$bankTotals
is an array indexed on name of the bank, with the value of the total amount for the bank. You can use this array as you see fit from here.One thing that might be useful is another
foreach
loop to print it all out:我宁愿添加
I would rather add
@Shubham 的循环是一种完全足够的技术。
foreach()
还可以通过数组解构来编写,以创建方便的变量;和空合并运算符以避免警告。代码:(演示)
或者,您可能希望使用
array_reduce()
,如果您想要:null 合并运算符可防止添加到结果数组中尚未声明的元素时生成任何警告/错误代码
:( 演示)
或者来自 PHP7.4,使用箭头函数语法:(演示)
输出:
@Shubham's loop is a perfectly adequate technique. The
foreach()
can also be written with array destructuring to create convenient variables; and the null coalescing operator to avoid warnings.Code: (Demo)
Alternatively, you may wish to employ
array_reduce()
if you want to:The null coalescing operator prevents generating any warnings/errors from adding to not-yet-declared elements in the result array
Code: (Demo)
Or from PHP7.4 with arrow function syntax: (Demo)
Output:
请参阅 php 中的 foreach。
see foreach in php.