我有一个像这样的“间隙”数组:
$arr = array (
"bananas" => array (
"2010-01-01" => "10.1",
"2010-01-02" => "11.4",
"2010-01-05" => "13.3", //missing 03, 04
"2010-01-06" => "09.2",
"2010-01-07" => "11.1" ),
"grapes" => array (
"2011-01-05" => "20.1",
"2011-01-06" => "21.4",
"2011-01-07" => "23.3",
"2011-01-08" => "29.2",
"2011-01-10" => "21.1", //missing 09
"2011-01-11" => "21.0" ),
"coconuts" => array (
"2012-01-28" => "50.1",
"2012-01-29" => "51.4",
"2012-02-02" => "53.3", //missing 30, 31, 01
"2012-02-03" => "51.1" )
);
我不知道数组中有多少产品和“日期=>价格”。
我怎样才能用差距前的最后价格填补缺失的日期?
重要提示:日期可以在不同的月份(查看"coconuts"
)。
我希望结果是这样的:
$arr = array (
"bananas" => array (
"2010-01-01" => "10.1",
"2010-01-02" => "11.4", //was last price before gap
"2010-01-03" => "11.4", //filling missing
"2010-01-04" => "11.4", //filling missing
"2010-01-05" => "13.3",
"2010-01-06" => "09.2",
"2010-01-07" => "11.1" ),
"grapes" => array (
"2011-01-05" => "20.1",
"2011-01-06" => "21.4",
"2011-01-07" => "23.3",
"2011-01-08" => "29.2", //was last price before gap
"2011-01-09" => "29.2", //filling missing
"2011-01-10" => "21.1",
"2011-01-11" => "21.0" ),
"coconuts" => array (
"2012-01-28" => "50.1",
"2012-01-29" => "51.4", //was last price before gap
"2012-01-30" => "51.4", //filling missing
"2012-01-31" => "51.4", //filling missing
"2012-02-01" => "51.4", //filling missing
"2012-02-02" => "53.3",
"2012-02-03" => "51.1" )
);
感谢您的时间。