如何合并两个集合而不覆盖任何值

3 php collections laravel

我试图获得两个集合的并集而不覆盖任何值:

\n\n

第一个收藏:

\n\n
Collection {#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   ]]}\n
Run Code Online (Sandbox Code Playgroud)\n\n

第二辑

\n\n
Collection {#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   ]]}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想完成这个:

\n\n
Collection {#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"  ]]}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不想覆盖任何现有的键或值,只需将它们添加在一起即可。

\n\n

我已经尝试过union(),但这会覆盖现有的键,并且不会采用第一个集合中不存在的键。

\n\n

任何帮助将非常感激

\n

Olu*_*kin 9

你用过吗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)

注意:如果您在没有嵌套数组的集合上使用它,那么您可能会得到与此不同的结果。