终点应放在原始数组中,不然算法不可能自作主张的添加数据
$a = array(
array('period' => 201303, 'out_count' => 383),
array('period' => 201304, 'out_count' => 43),
array('period' => 201306, 'out_count' => 2859),
array('period' => 201307, 'out_count' => 251),
array('period' => 201309, 'out_count' => 807),
);
$a[] = array('period' => 201312, 'out_count' => 0); //添加终点
$last = '';
foreach($a as $r) {
while($last && $last
$res[] = array('period' => $last, 'out_count' => 0);
$last = date('Ym', $last = strtotime("+1 month {$last}01"));
}
$res[] = $r;
$last = date('Ym', strtotime("+1 month {$r['period']}01"));
}
print_r($res);
Array
(
[0] => Array
(
[period] => 201303
[out_count] => 383
)
[1] => Array
(
[period] => 201304
[out_count] => 43
)
[2] => Array
(
[period] => 201305
[out_count] => 0
)
[3] => Array
(
[period] => 201306
[out_count] => 2859
)
[4] => Array
(
[period] => 201307
[out_count] => 251
)
[5] => Array
(
[period] => 201308
[out_count] => 0
)
[6] => Array
(
[period] => 201309
[out_count] => 807
)
[7] => Array
(
[period] => 201310
[out_count] => 0
)
[8] => Array
(
[period] => 201311
[out_count] => 0
)
[9] => Array
(
[period] => 201312
[out_count] => 0
)
)