Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 三维数组和_Php_Multidimensional Array - Fatal编程技术网

Php 三维数组和

Php 三维数组和,php,multidimensional-array,Php,Multidimensional Array,我要这两个数组的和 第一阵列: Array( [abc] => Array ( [yesterday] => 20 [today] => 50 [tomorrow] => 70 ) [pqr] => Array ( [yesterday] => 10 [today] => 20 [tomorrow] => 30 ) [xyz] => Array (

我要这两个数组的和

第一阵列:

Array(
[abc] => Array
    (
    [yesterday] => 20
    [today] => 50
    [tomorrow] => 70
    )

[pqr] => Array
    (
    [yesterday] => 10
    [today] => 20
    [tomorrow] => 30
    )

[xyz] => Array
    (
    [yesterday] => 30
    [today] => 20
    [tomorrow] => 10
    )
)
第二阵列:

Array(
[abc] => Array
    (
    [yesterday] => 70
    [today] => 20
    [tomorrow] => 50
    )

[pqr] => Array
    (
    [yesterday] => 20
    [today] => 30
    [tomorrow] => 10
    )

[xyz] => Array
    (
    [yesterday] => 10
    [today] => 30
    [tomorrow] => 20
    )
)
两个数组的总和:

Array(
[abc] => Array
    (
    [yesterday] => 90
    [today] => 70
    [tomorrow] => 120
    )

[pqr] => Array
    (
    [yesterday] => 30
    [today] => 50
    [tomorrow] => 40
    )

[xyz] => Array
    (
    [yesterday] => 40
    [today] => 50
    [tomorrow] => 30
    )
)
我希望这能给你一个想法。我知道这个代码不是最终的结果


我希望这能给你一个想法。我知道这段代码不是最终结果。

这应该适合您:

在这里,我将使用遍历
$arr1
$arr2
的每个内部数组。然后我再次检查innerArray的每个值,并将它们与
array\u map()
一起添加,然后我将返回的数组与innerArray的with键结合起来。最后,我用
$arr1
键再次组合数组

<?php

    $arr1 = [
            "abc" => [
                "yesterday" => 20,
                "today" => 50,
                "tomorrow" => 70
            ],
            "pqr" => [
                "yesterday" => 10,
                "today" => 20,
                "tomorrow" => 30
            ],
            "xyz" => [
                "yesterday" => 30,
                "today" => 20,
                "tomorrow" => 10
            ]
        ];

    $arr2 = [
            "abc" => [
                "yesterday" => 70,
                "today" => 20,
                "tomorrow" => 50
            ],
            "pqr" => [
                "yesterday" => 20,
                "today" => 30,
                "tomorrow" => 10
            ],
            "xyz" => [
                "yesterday" => 10,
                "today" => 30,
                "tomorrow" => 20
            ]
        ];  


    $result = array_combine(array_keys($arr1), array_map(function($a1, $a2){
        return array_combine(array_keys($a1), array_map(function($v1, $v2){ return $v1+$v2;}, $a1, $a2));
    }, $arr1, $arr2));


    print_r($result);


?>

这应该适合您:

在这里,我将使用遍历
$arr1
$arr2
的每个内部数组。然后我再次检查innerArray的每个值,并将它们与
array\u map()
一起添加,然后我将返回的数组与innerArray的with键结合起来。最后,我用
$arr1
键再次组合数组

<?php

    $arr1 = [
            "abc" => [
                "yesterday" => 20,
                "today" => 50,
                "tomorrow" => 70
            ],
            "pqr" => [
                "yesterday" => 10,
                "today" => 20,
                "tomorrow" => 30
            ],
            "xyz" => [
                "yesterday" => 30,
                "today" => 20,
                "tomorrow" => 10
            ]
        ];

    $arr2 = [
            "abc" => [
                "yesterday" => 70,
                "today" => 20,
                "tomorrow" => 50
            ],
            "pqr" => [
                "yesterday" => 20,
                "today" => 30,
                "tomorrow" => 10
            ],
            "xyz" => [
                "yesterday" => 10,
                "today" => 30,
                "tomorrow" => 20
            ]
        ];  


    $result = array_combine(array_keys($arr1), array_map(function($a1, $a2){
        return array_combine(array_keys($a1), array_map(function($v1, $v2){ return $v1+$v2;}, $a1, $a2));
    }, $arr1, $arr2));


    print_r($result);


?>
这可能不是最漂亮的解决方案,但我认为,使用此解决方案和@Rizier123的解决方案,您可以将所有内容封装在一个函数中,并使用如下函数蓝图
函数sumArrays($array1,$array2,&output)
,而不是使用
=
使用
+=/code>

希望这有帮助

这可能不是最漂亮的解决方案,但我认为,使用此解决方案和@Rizier123的解决方案,您可以将所有内容封装在一个函数中,并使用如下函数蓝图
函数sumArrays($array1,$array2,&output)
,而不是使用
=
使用
+=/code>


希望这有帮助

你试过什么吗?是的,我试过for循环,但我有很多数组,所以我需要一个快捷方式。然后至少给我们看看你的尝试你试过什么吗?是的,我试过for循环,但我有很多数组,所以我需要一个快捷方式。然后至少给我们看看你的尝试hanx Rizier123,我希望我能投赞成票。thanx Rizier123,我希望我能投赞成票。
Array
(
    [abc] => Array
        (
            [yesterday] => 90
            [today] => 70
            [tomorrow] => 120
        )

    [pqr] => Array
        (
            [yesterday] => 30
            [today] => 50
            [tomorrow] => 40
        )

    [xyz] => Array
        (
            [yesterday] => 40
            [today] => 50
            [tomorrow] => 30
        )

)
$output = array();
foreach ($array1 as $index => $value) {

    $output[$index]['yesterday'] = ($array2[$index]['yesterday'] + $value['yesterday']);
    $output[$index]['today'] = ($array2[$index]['today'] + $value['today']);
    $output[$index]['tomorrow'] = ($array2[$index]['tomorrow'] + $value['tomorrow']);
}