回答編集履歴

1

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

2020/07/22 06:02

投稿

bracket_i
bracket_i

スコア193

test CHANGED
@@ -45,3 +45,49 @@
45
45
  合算したいcollectionが3つ以上あったら、
46
46
 
47
47
  `$merge = collect([$collection_a, $collection_b]);` に増やしていけばよいです。
48
+
49
+
50
+
51
+
52
+
53
+ ##### 追記:参考
54
+
55
+ laravel5.8からは `mergeRecursive` があります
56
+
57
+ [laravel5.8 - mergeRecursive](https://readouble.com/laravel/5.8/ja/collections.html#method-mergerecursive)
58
+
59
+
60
+
61
+ 同じキーごとにまとめてくれる。
62
+
63
+
64
+
65
+ ```php
66
+
67
+ >>> $collection_a = collect (['price' => 300.0]);
68
+
69
+ >>> $collection_b = collect (['price' => 1200.0]);
70
+
71
+ >>> $merge = $collection_a->mergeRecursive($collection_b);
72
+
73
+ => Illuminate\Support\Collection {
74
+
75
+ all: [
76
+
77
+ "price" => [
78
+
79
+ 1200.0,
80
+
81
+ 300.0,
82
+
83
+ ],
84
+
85
+ ],
86
+
87
+ }
88
+
89
+ >>> $sum_price = array_sum($merge['price']);
90
+
91
+ => 1500.0
92
+
93
+ ```