将数组数组转换为Collection Laravel

时间:2018-03-28 11:04:58

标签: laravel collections

我有一个数组数组,它​​来自几个sql请求。 首先,我在foreach中发出一个sql请求,以获得我需要的所有数据

foreach ($users as $user) {
   // Two different Eloquent requests 
   $todo = User::select().....where('users.id' = $id);
   $done = User::select().....where('users.id' = $id);

   // I have operation on Collection that work fine ... 
   $totalTimes = $todo->toBase()->sum('dureeformation') ;
   $spendTimes = $done->toBase()->sum('dureeformation') ;
   $remainingTimes = $totalTimes - $spendTimes;

  $all[] = ['user_id' => $id, 'totalTime' => $totalTimes, 'spendTime' => $spendTimes,'remainingTime' => $remainingTimes ];

}

我的问题是以下...在foreach之外我显示值,我有这个数组数组...

array:16 [▼
  0 => array:4 [▼
    "user_id" => 1
    "totalTime" => 465
    "spendTime" => 0
    "remainingTime" => 465
  ]
  1 => array:4 [▼
    "user_id" => 3
    "totalTime" => 375
    "spendTime" => 0
    "remainingTime" => 375
  ]

我需要有一个Collection而不是......我试图让$ all = Collect(....)但我没有给我预期的结果。

我需要一个集合,因为我必须使用此创建的集合创建一个集合,并从另一个请求创建另一个集合。

关于这部分,我已经有了这个案例,我可以解决它。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

试试这个辅助功能:

$collection = collect($all);

此函数会将您的数组转换为集合。