我有一个包含91个项目的数组,我希望按周碳排列数组项目。
示例数据 -
Collection {#240 ▼
#items: array:91 [▼
0 => array:2 [▶]
1 => array:2 [▼
"date" => Carbon {#278 ▼
+"date": "2017-06-24 15:02:04.000000"
+"timezone_type": 3
+"timezone": "UTC"
}
"visitors" => 11
]
这是我目前的尝试 -
$dataViewQuarterly = $analytics->fetchSessions(Period::days(91))->take(91)->groupBy(function($date) {
return Carbon::parse($date->date)->format('w');
});
目前正在此行投放Trying to get property of non-object
-
return Carbon::parse($date->date)->format('w');
这是最好的方法吗?我应该使用这些数据构建一个新数组。
答案 0 :(得分:0)
您可以使用startOfWeek
Carbon方法
$dataViewQuarterly = $analytics->fetchSessions(Period::days(91))->take(91)->groupBy(function($date) {
return Carbon::parse($date->date)->startOfWeek();
});
答案 1 :(得分:0)
我创造了一个非碳素& amp;不那么雄辩的做事方式,但确实有效。由于数据每天都不同,所以每6个月滚动一次,所以我每隔7个项目就会对阵列产生影响,这实际上并不影响数据。
$dataFetchQuarterly = $analytics->fetchSessions(Period::days(91))->take(91)->toArray();
$weeks = array_chunk($dataFetchQuarterly, 7);
$dataViewQuarterly = array();
foreach($weeks as $index=>$sub_array) {
$counter = 0;
foreach($sub_array as $donut) {
$counter += $donut['visitors'];
}
$dataViewQuarterly[$index] = $counter;
}
答案 2 :(得分:0)
尝试这个我会帮助但是我需要调查你的$date
我不知道你有什么?
$dataViewQuarterly = $analytics->fetchSessions(Period::days(91))->take(91)->groupBy(function($date) {
return Carbon::parse($date->created_at)->format('w');
});