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']);
}