为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕娘9202427 2018-05-04 21:48:34
 请问两个数组怎么合并到一起?数组如下: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 
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

考虑到数组键为字符串,用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));


查看完整回答
反对 回复 2018-05-05
  • 1 回答
  • 0 关注
  • 1388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信