如何使用特定键对数组值求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用特定键对数组值求和相关的知识,希望对你有一定的参考价值。

"accounts" => array:6 [
    0 => array:2 [
      "acc_id" => 1
      "balance" => 1000.00
    ]
    1 => array:2 [
      "acc_id" => 2
      "balance" => -1500.00
    ]
    2 => array:4 [
      "acc_id" => 3
      "balance" => 5000.00
    ]
]

嗨,我怎么能总结所有的平衡?

foreach ($y['accounts'] as $k) 
{
    $sum_balance = $k['balance'];           
}
$sum_balance += $sum_balance;

使用此代码,结果将仅对上一个余额本身求和。示例结果是10000.00

答案

你需要在foreach循环中增加sum:

$sum_balance = 0;
foreach ($y['accounts'] as $k) 
{
    $sum_balance += $k['balance'];           
}
var_dump($sum_balance);
另一答案

array_sum()array_column()结合起来

array_column()

返回输入数组中单个列的值

array_sum()

计算数组中值的总和

$y = [
    'accounts' => [
        0 => [
          "acc_id" => 1,
          "balance" => 1000.00
        ],
        1 => [
          "acc_id" => 2,
          "balance" => -1500.00
        ],
        2 => [
          "acc_id" => 3,
          "balance" => 5000.00
        ]
    ]
];

var_dump(
    array_sum(array_column($y['accounts'], 'balance'))
);


result:float 4500

另一答案

你的解决方案几乎是正确的,只需在循环之前初始化$sum_balance并在循环内加总。

$sum_balance=0;
foreach ($y['accounts'] as $k) 
{
    $sum_balance += $k['balance'];           
}

希望它有所帮助,如果您需要任何帮助,请随时联系。

以上是关于如何使用特定键对数组值求和的主要内容,如果未能解决你的问题,请参考以下文章

如何用特定键对数组值求和[重复]

PHP按另一个数组中的特定键对数组进行排序[重复]

Spark Scala 按唯一键对值求和

使用字典中的键对对象数组进行排序

如何对对象中特定键的所有值求和?

BigQuery 和 Firebase - 基于键对事件值求和