加入使用放2个集并继续使用Laravel相同的密钥内两者的值

时间:2019-02-01 22:58:11

标签: php arrays laravel collections

我有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"}]}

谢谢

1 个答案:

答案 0 :(得分:0)

put方法只是将值设置为指定的键,因此它将覆盖那里的内容。如果要保留所有值,请将第一个集合中的值合并到第二个集合中。

$collection_2->merge($collection_1->get('products'));

然后就可以用把像你现在正在做的。

$collection_1->put('products', $collection_2);