PHP合并2个多维数组和求和值数组
我想合并这两个数组,并在保留PHP合并2个多维数组和求和值数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我想合并这两个数组,并在保留天的同时计算值移动 第一个阵列: array (30) 0 => array (2) day => "01" (2) movements => 49 1 => array (2) day => "02" (2) movements => 50 2 => array (2) day => "03" (2) movements => 54 ... 第二个阵列: arra
天的同时计算值移动
第一个阵列:
array (30)
0 => array (2)
day => "01" (2)
movements => 49
1 => array (2)
day => "02" (2)
movements => 50
2 => array (2)
day => "03" (2)
movements => 54
...
第二个阵列:
array (30)
0 => array (2)
day => "01" (2)
movements => 50
1 => array (2)
day => "02" (2)
movements => 51
2 => array (2)
day => "03" (2)
movements => 41
...
因此,我期望一组数组具有相同的日
索引和移动的总和
:
array (30)
0 => array (2)
day => "01" (2)
movements => 99
1 => array (2)
day => "02" (2)
movements => 101
2 => array (2)
day => "03" (2)
movements => 95
...
任何帮助都将不胜感激。如果阵列错过任何一天,甚至可以计算移动
<?php
$arrayFirst = [
['day' => '01', 'movements' => 10],
['day' => '02', 'movements' => 20],
['day' => '04', 'movements' => 40],
];
$arraySecond = [
['day' => '01', 'movements' => 15],
['day' => '03', 'movements' => 30],
['day' => '04', 'movements' => 45],
];
$arrColFirst = array_column($arrayFirst, 'movements', 'day');
$arrColSecond = array_column($arraySecond, 'movements', 'day');
$merrgedArray = array_merge($arrColFirst, $arrColSecond);
$result = [];
foreach ($merrgedArray as $day=> $movments) {
$result[$day] = [
'day' => $day,
'movements' => isset($arrColFirst[$day]) ? $arrColFirst[$day] + $movments : $movments,
];
}
sort($result);
$arr1=[['day'=>01','movement'=>50],'day'=>02','movement'=>10];
$arr2=[['day'=>'01','movement'=>20','day'=>02','movement'=>10]];
$sum=[];
回声';
印刷费($arr1);
印刷费(2美元);
如果(!空($arr1)){
$result=[];
foreach($arr1作为$key=>$value){
如果(isset($arr2[$key]['day'])&&$arr2[$key]['day']==$value['day'])){
$result['day']=$value['day'];
$result['movement']=$value['movement']+$arr2[$key]['movement'];
}
数组_push($sum,$result);
}
}
印刷费($sum);
$arr1=array_列($arr1,null,'day')代码>和第二个数组。然后组合相同的索引
$arr1 = [ ['day' => '01', 'movement' => 50], ['day' => '02', 'movement' => 10] ];
$arr2 = [ ['day' => '01', 'movement' => 20], ['day' => '02', 'movement' => 10] ];
$sum = [];
echo '<pre>';
print_r($arr1);
print_r($arr2);
if(!empty($arr1)){
$result = [];
foreach ($arr1 as $key => $value) {
if(isset($arr2[$key]['day']) && $arr2[$key]['day'] == $value['day']){
$result['day'] = $value['day'];
$result['movement'] = $value['movement']+$arr2[$key]['movement'];
}
array_push($sum, $result);
}
}
print_r($sum);