【发布时间】:2018-11-28 07:44:26
【问题描述】:
我有一张名为items 的表。现在,我正在获取本周的所有记录(意味着每天记录)。我已经这样做了。
但问题是,假设周三没有记录,周三的数据应该还是周二的数据或者周三之前的日期。请在下面查看我的代码。
public function arrayAssigner($theArray, $theArrayData, $field)
{
$format_to_day = function($date){
return date_format(new \DateTime($date), 'D');
};
foreach($theArray as $key => $value){
if(isset($theArrayData[$key]) && $format_to_day($theArrayData[$key]['created_at']) == 'Mon'){
$theArray[0] = $theArrayData[$key][$field];
} elseif (isset($theArrayData[$key]) && $format_to_day($theArrayData[$key]['created_at']) == 'Tue'){
$theArray[1] = $theArrayData[$key][$field];
} elseif (isset($theArrayData[$key]) && $format_to_day($theArrayData[$key]['created_at']) == 'Wed'){
$theArray[2] = $theArrayData[$key][$field];
} elseif (isset($theArrayData[$key]) && $format_to_day($theArrayData[$key]['created_at']) == 'Thu'){
$theArray[3] = $theArrayData[$key][$field];
} elseif (isset($theArrayData[$key]) && $format_to_day($theArrayData[$key]['created_at']) == 'Fri'){
$theArray[4] = $theArrayData[$key][$field];
}
}
return $theArray;
}
我是这样使用的:
$theArray = [0, 0, 0, 0, 0];
$this->arrayAssigner($theArray, $dataOfTheWeek, 'quantity');
我还有一个构造函数可以将 weekStart 设置为 MONDAY。
示例:
假设我有来自Nov 12 - 16 的记录。现在,当前周是Nov 26-30,但是在数据库中我没有Nov 26的记录,这意味着Nov 26的记录或数量是来自Nov 16的记录。
输出(作为数组):
11 月 12 日至 16 日:[7, 5, 6, 8, 12]
11 月 26 日至 30 日:[12, 8, 9, 10, 13]
Nov 26 - 30数组的第一项应该是12,因为它是Nov 12 - 16之前的数据。
支持图片:
结果必须是动态的;一旦有一天没有记录,就会填上最后一条记录。
【问题讨论】:
-
我假设您希望其他人帮助修改
arrayAssigner以返回特定结果,对吧?在这种情况下,我建议您提供输入和当前输出以及预期输出的示例 -
@YohanesGultom 请查看更新。