ARkadaşlar merhaba. içe içe gruplamalar hep sinir bozucu oluyor. aşağıdaki gibi bir data m var. Bunu önce requestDate e göre gruplamam gerekiyor. Buraya kadar sıkıntı yok. Tarihe göre grupladıktan sonra diğer fieldlara göre gruplayıp count almam gerekiyor. Yani atıyorum 1 tarih altında 3 tane farklı data var. Bu dataların her birinde "cancelledByDriver" kaç tane var(1 olan yani), busy kaç tane var cancelledByRider kaç tane, cancelledByRider kaç tane var. Yardımcı olursanız sevinirim.
"tripRequests": [
{
"cancelledByDriver": 0,
"busy": 0,
"cancelledByRider": 0,
"cancelledByRider": 1,
"requestDate": "2017-08-12T21:03:29.754Z"
},
{},
{
"cancelledByDriver": 0,
"busy": 0,
"cancelledByRider": 0,
"acceptedByDriver": 1,
"requestDate": "2017-08-14T16:10:28.517Z"
},
{
"cancelledByDriver": 0,
"busy": 0,
"cancelledByRider": 0,
"acceptedByDriver": 1,
"requestDate": "2017-08-14T16:27:23.176Z"
},
{
"cancelledByDriver": 0,
"busy": 1,
"cancelledByRider": 0,
"acceptedByDriver": 0,
"requestDate": "2017-08-14T21:15:16.934Z"
},
{
"cancelledByDriver": 0,
"busy": 1,
"cancelledByRider": 0,
"acceptedByDriver": 0,
"requestDate": "2017-08-17T22:13:15.474Z"
},
...
Benim geldiğim nokta bu
$days = $tripRequests->groupBy(function($item) {
return date('Y-m-d', strtotime($item['requestDate']));
})->map(function ($item, $key) {
return collect($item);
});