现在我正在从db导出到csv函数。
我完成它的漫长旅程,csv文件中格式或样式的一部分是每天列出性能报告,包括根本没有销售的日子。这是客户要求。
我有很多问题要问,但现在这是主要的优先事项。
我有疑问:
$period = DB::table('reports')->select('id','quantity','created_date')->whereBetween('created_date',$timerange)->where('branch_id',$br_id)->orderBy('created_date','asc')->get();
结果: (我正在使用var_dump)
array (size=3)
0 =>
array (size=2)
'created_date' => string '2016-02-18 00:00:00' (length=19)
'quantity' => int 1
1 =>
array (size=2)
'created_date' => string '2016-02-20 00:00:00' (length=19)
'quantity' => int 1
2 =>
array (size=2)
'created_date' => string '2016-02-23 00:00:00' (length=19)
'quantity' => int 1
问题是即使在该日期没有记录,如何将结果转化为此。
示例:
array (size=3)
0 =>
array (size=2)
'created_date' => string '2016-02-18 17:21:04' (length=19)
'quantity' => int 1
1 =>
array (size=2)
'created_date' => string '2016-02-19 17:21:04' (length=19)
'quantity' => int 0
2 =>
array (size=2)
'created_date' => string '2016-02-20 00:00:00' (length=19)
'quantity' => int 1
3 =>
array (size=2)
'created_date' => string '2016-02-21 00:00:00' (length=19)
'quantity' => int 0
4 =>
array (size=2)
'created_date' => string '2016-02-22 00:00:00' (length=19)
'quantity' => int 0
5 =>
array (size=2)
'created_date' => string '2016-02-23 00:00:00' (length=19)
'quantity' => int 1
谢谢
答案 0 :(得分:1)
好的,我在编辑后检查过这个问题。根据我的理解,您需要在查询结果中包含数据库中不存在的日期。您有两种选择:
第一次 - 使用DatePeriod PHP class生成两个日期之间的日期:
$period = new \DatePeriod(
new \DateTime('2010-10-01'),
new \DateInterval('P1D'),
new \DateTime('2010-10-05')
);
在从数据库中提取结果之后,循环遍历所有记录,如果查询结果中不存在$ period中存在的日期,则只需将其添加到检索到的相同格式的结果数组中来自数据库。
第二次 - 您检查答案here
希望这有帮助。