如何获得每个子阵列的各列的排列总和? [英] How to get the array sum of each column of each sub array?

查看:134
本文介绍了如何获得每个子阵列的各列的排列总和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的数组:

Array ( [HRI] => Array ( [0] => Array ( [0] => 14157.72 [1] => 10157.72 ) [1] => Array ( [0] => 39140.94 [1] => 39140.94 ) [2] => Array ( [0] => 36383.66 [1] => 36383.66 ) [3] => Array ( [0] => 38508.00 [1] => 38508.00 ) [4] => Array ( [0] => 8424.00 [1] => 8424.00 ) ) [MPU] => Array ( [0] => Array ( [0] => 432.00 [1] => 1200.00 ) ) [RHA] => Array ( [0] => Array ( [0] => 111562.50 [1] => 94237.50 ) [1] => Array ( [0] => 37880.00 [1] => 31400.00 ) [2] => Array ( [0] => 11364.00 [1] => 9420.00 ) [3] => Array ( [0] => 23719.50 [1] => 18832.50 ) [4] => Array ( [0] => 26705.00 [1] => 21800.00 ) [5] => Array ( [0] => 5190.00 [1] => 3816.00 ) [6] => Array ( [0] => 8707.50 [1] => 6966.00 ) [7] => Array ( [0] => 0.00 [1] => 0.00 ) [8] => Array ( [0] => 0.00 [1] => 0.00 ) [9] => Array ( [0] => 0.00 [1] => 0.00 ) [10] => Array ( [0] => 128952.00 [1] => 94500.00 ) [11] => Array ( [0] => 0.00 [1] => 0.00 ) ) [PBA] => Array ( [0] => Array ( [0] => 58816.26 [1] => 50784.36 ) ) )

我想通过每个子阵列,并获得每列的总和。

I want to go through each subArray and get the sum for each column.

例如

有关与键 HRI 子数组:

[HRI] => 
    Array (
        [0] => Array ( [0] => 14157.72 [1] => 10157.72 )
        [1] => Array ( [0] => 39140.94 [1] => 39140.94 )
        [2] => Array ( [0] => 36383.66 [1] => 36383.66 )
        [3] => Array ( [0] => 38508.00 [1] => 38508.00 )
        [4] => Array ( [0] => 8424.00 [1] => 8424.00 )
    )

期望的输出:


column 0:
  14157.72 + 39140.94 + 36383.66 + 38508.00 + 8424.00 = ?

column 1:
  10157.72 + 39140.94 + 36383.66 + 38508.00 + 8424.00 = ?

我目前的code:

my current code:

$amount = [];
for($o=0;$o<count($totalamount);$o++){
    print_r($totalamount[$o]['login']); 

    if($totalamount[$o]['login'] == $totalamount[$o]['login']){
        //$amount[$totalamount[$o]['login']] += $totalamount[$o]['piamount'];
        $piamount[$totalamount[$o]['login']][] = array_sum(array($totalamount[$o]['piamount'].','));
    }
}

如何更改我的code,以获得期望的结果?

How can I change my code to get the expected result?

推荐答案

这应该为你工作:

通过阵列只是循环和 <$得到各子阵列的总和C $ C> array_sum()

Just loop through the array and get the sum of each sub array with array_sum()

foreach($arr as $k => $v)
    echo $k . " = " . array_sum($v) . "<br>";

例如输入/输出:

example input/output:

$arr = [
        [1,2,3],
        [4,5,6],
        [7,8,9],
    ];

输出:

0 = 6
1 = 15
2 = 24

编辑:

既然你更新你的阵列结构,只需要使用这样的:

Since you updated your array structure, just use this:

foreach($arr as $k => $v)
    echo $k . " = " . array_sum(array_map("array_sum", $v)) . "<br>";

编辑2:

如果你想子阵列的每个阵列的总和,你必须使用两个foreach循环是这样的:

If you want the sum of each array of the sub arrays the you have to use two foreach loops like this:

foreach($arr as $k1 => $innerArray) {
    foreach($innerArray as $k2 => $v)
        echo "$k1-$k2 = " . array_sum($v) . "<br>";
    echo "<br><br>";
}

修改3:

我想,我终于看到你想要什么:你只是想通过各个子阵列,并获得子阵列的各列的总和:

I think I finally see what you want: You just want to go through each sub arrays and get the sum of each column of the sub array:

foreach($arr as $k1 => $innerArray) {
    foreach($innerArray[0] as $k2 => $v)
        echo "$k1-$k2 = " . array_sum(array_column($innerArray, $k2)) . "<br>";
    echo "<br><br>";
}

这篇关于如何获得每个子阵列的各列的排列总和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆