質問するログイン新規登録

回答編集履歴

1

質問者より先進verでの別解

2020/07/22 06:02

投稿

bracket_i
bracket_i

スコア193

answer CHANGED
@@ -21,4 +21,27 @@
21
21
  >>> $collection_c = collect(['price' => $sum_price]);
22
22
  ```
23
23
  合算したいcollectionが3つ以上あったら、
24
- `$merge = collect([$collection_a, $collection_b]);` に増やしていけばよいです。
24
+ `$merge = collect([$collection_a, $collection_b]);` に増やしていけばよいです。
25
+
26
+
27
+ ##### 追記:参考
28
+ laravel5.8からは `mergeRecursive` があります
29
+ [laravel5.8 - mergeRecursive](https://readouble.com/laravel/5.8/ja/collections.html#method-mergerecursive)
30
+
31
+ 同じキーごとにまとめてくれる。
32
+
33
+ ```php
34
+ >>> $collection_a = collect (['price' => 300.0]);
35
+ >>> $collection_b = collect (['price' => 1200.0]);
36
+ >>> $merge = $collection_a->mergeRecursive($collection_b);
37
+ => Illuminate\Support\Collection {
38
+ all: [
39
+ "price" => [
40
+ 1200.0,
41
+ 300.0,
42
+ ],
43
+ ],
44
+ }
45
+ >>> $sum_price = array_sum($merge['price']);
46
+ => 1500.0
47
+ ```