也许是这样?
我使用array_search查看是否在value s中找到,如果不加零值,则加上值。
$keys = ["2018-August","2018-October","2018-September","2019-January","2019-October"];
$values = [21,3,3,1,1];
For($i= strtotime($keys[0]); $i<=strtotime(end($keys)); $i+=86400*31){
$search = array_search(date("Y-F", $i), $keys);
if($search !== false){
$new[$keys[$search]] = $values[$search];
}else{
$new[date("Y-F", $i)] =0;
}
}
$new[end($keys)] = end($values); //add last item since I loop between the dates
Var_dump($new);
输出:
array(15) {
["2018-August"]=>
int(21)
["2018-September"]=>
int(3)
["2018-October"]=>
int(3)
["2018-November"]=>
int(0)
["2018-December"]=>
int(0)
["2019-January"]=>
int(1)
["2019-February"]=>
int(0)
["2019-March"]=>
int(0)
["2019-April"]=>
int(0)
["2019-May"]=>
int(0)
["2019-June"]=>
int(0)
["2019-July"]=>
int(0)
["2019-August"]=>
int(0)
["2019-September"]=>
int(0)
["2019-October"]=>
int(1)
}