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