快捷导航

请问两个数组怎么匹配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

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

考虑到数组键为字符串,用php内置数组函数操作比较方便,于是便写了以下函数
functionarray_date_merge($arr,$brr,$fixValue=50){//获取交集keys$sameKey=array_keys(array_intersect_key($arr,$brr));foreach($arras$k=>$v){$data[$k]=in_array($k,$sameKey)?($brr[$k]-$v):($fixValue-$v);}//合并新数组key覆盖value更新returnarray_merge($brr,$data);}//测试OKprint_r(array_date_merge($arr,$brr,50));
回复

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP