如何将两个数组的数量相加

时间:2015-01-22 23:48:20

标签: php arrays

这可能不是那么难,但我已经搜索了一段时间没有运气,所以任何帮助都将受到赞赏。

我在PHP中使用两个数组,这两个数组包含多个多维数组,每个数组都有一组两个值。 2个数组看起来像这样:

Array
(
[0] => Array
    (
        [0] => 3206.63
        [1] => 815.47
    )

[1] => Array
    (
        [0] => 5024.71
        [1] => 803.73
    )

[2] => Array
    (
        [0] => 3290.36
        [1] => 625.02
    )
    //...
)

Array
(
[0] => Array
    (
        [0] => 3138.87
        [1] => 819.8
    )

[1] => Array
    (
        [0] => 5000.24
        [1] => 810.87
    )

[2] => Array
    (
        [0] => 3221.15
        [1] => 668.58
    )
    //...
)

我需要实现这个目标:

Array
(
[0] => Array
    (
        [0] => 6345.5
        [1] => 1635.27
    )

[1] => Array
    (
        [0] => 10024.95
        [1] => 1614.6
    )

[2] => Array
    (
        [0] => 6511.51
        [1] => 1293.6
    )
    //...
)

1 个答案:

答案 0 :(得分:1)

这应该适合你:

(这里我使用foreach循环每个innerArray并使用array_sum()来获取每个innerArray的所有值的总和)

<?php

    $arr = array(
                array(
                    3206.63,
                    815.47
                ),
                array(
                    5024.71,
                    803.73
                ),
                array(
                    3290.36,
                    625.02
                )

        );

    $result = array();

    foreach($arr as $v)
        $result[] = array_sum($v);

    print_r($result);

?>

输出:

Array ( [0] => 4022.1 [1] => 5828.44 [2] => 3915.38 )

如果你有2个阵列,你可以使用它:

$result = array();

foreach($arr1 as $k => $v)
    $result[] = array_sum($arr1[$k]) + array_sum($arr2[$k]);

print_r($result);

修改

根据您更新的问题,这应该适合您:

<?php

    $arr1 = array(
                array(
                    3206.63,
                    815.47
                ),
                array(
                    5024.71,
                    803.73
                ),
                array(
                    3290.36,
                    625.02
                )

            );

    $arr2 = array(
                array(
                    3138.87,
                    819.8
                ),
                array(
                    5000.24,
                    810.87
                ),
                array(
                    3221.15,
                    668.58
                )

            );

    $sums = array();

    foreach ($arr1 as $key => $value) {
        $sums[$key][] = $arr1[$key][0] + $arr2[$key][0];
        $sums[$key][] = $arr1[$key][1] + $arr2[$key][1];
    }

    print_r($sums);

?>

输出:

Array
(
    [0] => Array
        (
            [0] => 6345.5
            [1] => 1635.27
        )

    [1] => Array
        (
            [0] => 10024.95
            [1] => 1614.6
        )

    [2] => Array
        (
            [0] => 6511.51
            [1] => 1293.6
        )

)