回答編集履歴
1
質問者より先進verでの別解
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
|
+
```
|