我有2个非常简单的集合(第一个在数组产品中有2个值,第二个是一个简单的数组):
$ collection_1 = collect ([
'products' => [
['id' => 1, 'name' => 'Product 1'], ['id' => 2, 'name' => 'Product 2']
]
]);
$ collection_2 = collect ([
['id' => 4, 'name' => 'Product 4'], ['id' => 3, 'name' => 'Product 4']
]);
我想什么做的是合并使用put(保持关键产品)两个集合,但使用看跌期权,当我失去了第一个集合的值,只有得到那些第二的:
$collection_1->put('products', $collection_2);
结果:
{"products":[{"id":4,"name":"Product 4"},{"id":3,"name":"Product 4"}]}
如何在维持“产品”数组中的两个值的同时加入两个集合?这是预期的结果:
{"products":[{"id":1,"name":"Product 1"},{"id":2,"name":"Product 2"},{"id":4,"name":"Product 4"},{"id":3,"name":"Product 4"}]}
谢谢
答案 0 :(得分:0)
put方法只是将值设置为指定的键,因此它将覆盖那里的内容。如果要保留所有值,请将第一个集合中的值合并到第二个集合中。
$collection_2->merge($collection_1->get('products'));
然后就可以用把像你现在正在做的。
$collection_1->put('products', $collection_2);