我有一个名为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
或数量是{{ 1}}。
输出(作为数组):
11月12日-16日
Nov 16
11月26日至30日:
[7, 5, 6, 8, 12]
[12, 8, 9, 10, 13]
数组中的第一项应该为12,因为它是Nov 26 - 30
的先前数据。
支持图片:
结果必须是动态的;有一天没有记录时,它将填充最后一条记录。
答案 0 :(得分:0)
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])) {
$day = $format_to_day($theArrayData[$key]['created_at']);
switch ($day) {
case 'Mon':
$theArray[0] = $theArrayData[$key][$field];
break;
case 'Tue':
// new_data = ---if exists ---------------v--- assign ------------------v-- old_data--
$theArray[1] = $theArrayData[$key][$field] ? $theArrayData[$key][$field] : $theArray[0];
break;
case 'Wed':
// new_data = ---if exists ---------------v--- assign ------------------v-- old_data--
$theArray[2] = $theArrayData[$key][$field] ? $theArrayData[$key][$field] : $theArray[1];
break;
case 'Thu':
// new_data = ---if exists ---------------v--- assign ------------------v-- old_data--
$theArray[3] = $theArrayData[$key][$field] ? $theArrayData[$key][$field] : $theArray[2];
break;
case 'Fri':
// new_data = ---if exists ---------------v--- assign ------------------v-- old_data--
$theArray[4] = $theArrayData[$key][$field] ? $theArrayData[$key][$field] : $theArray[3];
break;
default:
break;
}
}
}
return $theArray;
}
这就是你想要的吗?