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

问题描述 投票:0回答:3
"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

php arrays
3个回答
3
投票

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

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

3
投票

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.