请问两个数组怎么合并到一起?
数组如下:
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
https://segmentfault.com/q/1010000000477066
$arr1=['2018-05-23' => 2, '2018-05-24' => 2, '2018-05-25' => 2];
$arr2=['2018-05-16' => 48, '2018-05-17' => 48, '2018-05-18' => 48, '2018-05-19' => 48, '2018-05-23'=> 12, '2018-05-24' => 12];
$tem=[];
foreach($arr1 as $k=>$v){
if(isset($arr2[$k])){
$tem[$k]=$arr2[$k]-$v;
unset($arr2[$k]);
}else{
$tem[$k]=50-$v;
}
}
$data=array_merge($tem,$arr2);
ksort($data,SORT_DESC);
var_dump($data);
<?php
$arr1 = [
'2018-05-23' => 2,
'2018-05-24' => 2,
'2018-05-25' => 2
];
$arr2 = [
'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;
foreach ($arr1 as $k=>$v) {
if (array_key_exists($k, $arr2))
$arr2[$k] -= $v;
else
$arr2[$k] = $num - $v;
}
ksort($arr2);
$tmp = [];
foreach ($arr2 as $k=>$v)
$tmp[] = "{$k},{$v}";
$str = implode('|', $tmp);
var_dump($str);