![](/img/trans.png)
[英]Laravel eloquent group eloquent records in hourinterval with Left join
[英]group records by day (eloquent) laravel
你好我的朋友我有一個問題。 我正在查詢並希望按天獲取記錄組。 現在我已經完成了這段代碼:
$pedidosChart = DB::table('pedidos')
->selectRaw(' count(*) as count , DATE_FORMAT(fecha_creado, \'%d\') as day , sum( pedidos.precio_total) as amount ')
->whereMonth('fecha_creado', 12)
->groupBy('day')
->get()
我懂了:
0 => {#1388 ▼
+"count": 4
+"day": "15"
+"amount": 6073.5798950195
}
1 => {#1387 ▼
+"count": 8
+"day": "17"
+"amount": 22565.599243164
}
2 => {#1389 ▼
+"count": 11
+"day": "18"
+"amount": 13111.219726562
}
我想得到:
[▼
15 => array:2 [▼
"count" => 4
"amount" => 6073.5798950195
]
17 => array:2 [▼
"count" => 8
"amount" => 22565.599243164
]
18 => array:2 [▼
"count" => 11
"amount" => 13111.219726562
]
21 => array:2 [▼
"count" => 4
"amount" => 2910.5600585938
]
我得到了上述結果,因為使用 foreach (循環)對數據進行排序。 可能嗎? 如何?
如果您不想從實際數組中刪除day
鍵,則可以使用一種快速解決方案。
您可以只使用 laravel 收集方法groupBy 。
$grouped = $pedidosChart->groupBy('day');
其他解決方案是使用 foreach 循環並將 key 設置為day
的值,然后取消設置。
$grouped = [];
foreach($pedidosChart as $key => $obj) {
$grouped[$obj->day] = $obj;
unset($grouped[$obj->day]['day']);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.