猿问

请问两个数组怎么匹配key后合并到一起重新组合?

 请问两个数组怎么合并到一起?
数组如下:
Array    
(    
[2018-05-23] => 2    
[2018-05-24] => 2    
[2018-05-25] => 2    
)    
Array    
(    
[2018-05-16] => 48    
[2018-05-17] => 48    
[2018-05-18] => 48    
[2018-05-19] => 48    
[2018-05-23] => 12    
[2018-05-24] => 12    
)
固定的数值变量:$Num(例如50);
需求:对比两个数组,如果日期相同的,就用数组2的value减去数组1的value(48-2)作为value;如果不一样的就用固定数值$Num减去数组1的value(50-2);然后重新组合成一个数组或者字符串,包含数组1和数组2的所有日期和值。
最终效果:2018-05-16,48|2018-05-17,48|2018-05-18,48|2018-05-19,48|2018-05-23,10|2018-05-24,10|2018-05-25,48 


慕娘9202427
浏览 1389回答 1
1回答

pardon110

考虑到数组键为字符串,用php内置数组函数操作比较方便,于是便写了以下函数function array_date_merge($arr,$brr,$fixValue=50){      //获取交集keys    $sameKey = array_keys(array_intersect_key($arr,$brr));       foreach($arr as $k => $v){       $data[$k] = in_array($k,$sameKey)?($brr[$k]-$v):($fixValue-$v);     }     //合并新数组key覆盖value更新       return array_merge($brr,$data); } //测试OK print_r(array_date_merge($arr,$brr,50));
随时随地看视频慕课网APP
我要回答