我想要的是我在表中有5条记录, 日期 - > 2017-03-12,2017-03-23,2017-03-25,2017-03-28,2017-03-29和他们有价格 - > 10,20,30,40,50。
我想要生成一个报告,其中显示的日期介于12到29之间.12,13,14,15等等到它们的价格,如果这个日期没有可用的价格,它应该采用之前的价格记录。对于前者,对于日期13,14,15,它应该取10的价格,而对于日期24,它应该取20的价格。
关于它的任何想法?
答案 0 :(得分:0)
你走了。
$dates['2017-03-12'] = 10;
$dates['2017-03-23'] = 20;
$dates['2017-03-25'] = 30;
$dates['2017-03-28'] = 40;
$dates['2017-03-29'] = 50;
$start = min(array_keys($dates));
$end = max(array_keys($dates));
$list = array();
while($start <= $end){
$value = $dates[$start];
if(!is_null($value))
$last_value = $value;
$list[] = array("date" => $start,"value" => $last_value);
$start = date('Y-m-d',strtotime($start."+1day"));
}
print_r($list);
这将打印
Array
(
[0] => Array
(
[date] => 2017-03-12
[value] => 10
)
[1] => Array
(
[date] => 2017-03-13
[value] => 10
)
[2] => Array
(
[date] => 2017-03-14
[value] => 10
)
[3] => Array
(
[date] => 2017-03-15
[value] => 10
)
[4] => Array
(
[date] => 2017-03-16
[value] => 10
)
[5] => Array
(
[date] => 2017-03-17
[value] => 10
)
[6] => Array
(
[date] => 2017-03-18
[value] => 10
)
[7] => Array
(
[date] => 2017-03-19
[value] => 10
)
[8] => Array
(
[date] => 2017-03-20
[value] => 10
)
[9] => Array
(
[date] => 2017-03-21
[value] => 10
)
[10] => Array
(
[date] => 2017-03-22
[value] => 10
)
[11] => Array
(
[date] => 2017-03-23
[value] => 20
)
[12] => Array
(
[date] => 2017-03-24
[value] => 20
)
[13] => Array
(
[date] => 2017-03-25
[value] => 30
)
[14] => Array
(
[date] => 2017-03-26
[value] => 30
)
[15] => Array
(
[date] => 2017-03-27
[value] => 30
)
[16] => Array
(
[date] => 2017-03-28
[value] => 40
)
[17] => Array
(
[date] => 2017-03-29
[value] => 50
)
)