我试图获得两个集合的并集而不覆盖任何值:
\n\n第一个收藏:
\n\nCollection {#246 \xe2\x96\xbc\n #items: array [\xe2\x96\xbc\n 0 => array [\xe2\x96\xbc\n "status" => "Invoice"\n "letterPaymentAmount" => 4240.0\n "BankAccountNo" => "SEK"\n "Date" => "2017-07-15T16:32:22"\n "DueDate" => "2017-07-28T00:00:00"\n "ocr" => "3000000202"\n "lastDatePayDay" => "28"\n ]]}\nRun Code Online (Sandbox Code Playgroud)\n\n第二辑
\n\nCollection {#246 \xe2\x96\xbc\n #items: array [\xe2\x96\xbc\n 0 => array [\xe2\x96\xbc\n "status": "Reminder",\n "letterPaymentAmount": 4300,\n "BankAccountNo": "SEK",\n "Date": "2017-08-15T16:01:30",\n "DueDate": "2017-08-30T00:00:00",\n "ocr": "3000002406",\n "lastDatePayDay": "30",\n "lastDatePayMonth": "Aug",\n "Country": "Singapore",\n "Customer": "TickTack" \n ]]}\nRun Code Online (Sandbox Code Playgroud)\n\n我想完成这个:
\n\nCollection {#246 \xe2\x96\xbc\n #items: array [\xe2\x96\xbc\n 0 => array [\xe2\x96\xbc\n "status" => "Invoice"\n "letterPaymentAmount" => 4240.0\n "BankAccountNo" => "SEK"\n "Date" => "2017-07-15T16:32:22"\n "DueDate" => "2017-07-28T00:00:00"\n "ocr" => "3000000202"\n "lastDatePayDay" => "28"],\n 1=> [ \n "status": "Reminder",\n "letterPaymentAmount": 4300,\n "BankAccountNo": "SEK",\n "Date": "2017-08-15T16:01:30",\n "DueDate": "2017-08-30T00:00:00",\n "ocr": "3000002406",\n "lastDatePayDay": "30",\n "lastDatePayMonth": "Aug",\n "Country": "Singapore",\n "Customer": "TickTack" ]]}\nRun Code Online (Sandbox Code Playgroud)\n\n我不想覆盖任何现有的键或值,只需将它们添加在一起即可。
\n\n我已经尝试过union(),但这会覆盖现有的键,并且不会采用第一个集合中不存在的键。
任何帮助将非常感激
\n你用过吗concat()?示例如下:
$col1 = collect([
['abc' => 1, 'dec' => 2],
['abc' => 1, 'dec' => 6]
]);
$col2 = collect([
['abc' => 3, 'dec' => 4, 'acd' => 2],
['abc' => 1, 'dec' => 8, 'acd' => 6],
]);
return $col1->concat($col2);
Run Code Online (Sandbox Code Playgroud)
注意:如果您在没有嵌套数组的集合上使用它,那么您可能会得到与此不同的结果。