簡體   English   中英

按天分組記錄(雄辯)laravel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM