有人可以解释一下如何获取两个外部数组元素下每个值的总和吗? 我想以一个数组结束,该数组显示 2011 年 11 月 18 日和 2011 年 11 月 22 日每个日期的值。这是数组数据:
[
'Nov 18, 2011' => [
'C' => [
'T' => 49783.531672,
'X' => 25013.184
],
'S' => [
'T' => 32908.863528
],
'I' => [
'T' => 44561.52
]
],
'Nov 22, 2011' => [
'C' => [
'T' => -5168.944696
],
'S' => [
'T' => -3823.890504
]
]
]
如果您每次约会只需要一笔钱:
$totals = array();
foreach ($origarray as $date => $inner) {
$totals[$date] = array_sum(array_map('array_sum', $inner));
}
如果您想要每个日期多笔金额:
$totals = array();
foreach ($origarray as $date => $item) {
foreach ($item as $innerk => $innerv) {
$totals[$date][$innerk] = array_sum($innerv);
}
}
脚本将是:
$results = array();
foreach($array as $element){
$sum = 0;
foreach($element as $subelement){
foreach($subelement as $item => $value){
$sum = $sum + $value;
}
}
array_push($results, $sum);
}
这将为您提供一个总和数组。 如果您愿意的话,您当然可以为每个名称命名等等。
编辑:超前了。编辑给我的总和,不是计数
对于优雅的全功能风格脚本,请在映射的
array_sum()
调用内部调用映射的 array_sum()
。 演示
var_export(
array_map(
fn($set) => array_sum(array_map(array_sum(...), $set)),
$array
)
);
输出:
array (
'Nov 18, 2011' => 152267.0992,
'Nov 22, 2011' => -8992.8352,
)