通过Laravel集合连接两个数组并与键求和

通过Laravel集合连接两个数组并与键求和,laravel,laravel-6,laravel-collection,Laravel,Laravel 6,Laravel Collection,我有一组数组,格式如下: [ {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null} ] 我以json_解码格式将其存储在mysql文本列中。我想调用所有有说服力的模型,并将这些数组和对象上每个键的总和合并。比如说 第一行包含:

我有一组数组,格式如下:

[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
我以json_解码格式将其存储在mysql文本列中。我想调用所有有说服力的模型,并将这些数组和对象上每个键的总和合并。比如说

第一行包含:

[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
[
    {"GA_1":null,"GA_2":"1","GA_3":"2","GA_4":null}, 
    {"SA_1":"1","SA_2":null,"SA_3":"3","SA_4":null}, 
    {"RA_1":null,"RA_2":"2","RA_3":null,"RA_4":"5"}
]
[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
第二行包含:

[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
[
    {"GA_1":null,"GA_2":"1","GA_3":"2","GA_4":null}, 
    {"SA_1":"1","SA_2":null,"SA_3":"3","SA_4":null}, 
    {"RA_1":null,"RA_2":"2","RA_3":null,"RA_4":"5"}
]
[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
第三行包含:

[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
[
    {"GA_1":null,"GA_2":"1","GA_3":"2","GA_4":null}, 
    {"SA_1":"1","SA_2":null,"SA_3":"3","SA_4":null}, 
    {"RA_1":null,"RA_2":"2","RA_3":null,"RA_4":"5"}
]
[
    {"GA_1":"1","GA_2":null,"GA_3":null,"GA_4":null}, 
    {"SA_1":null,"SA_2":"2","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":null,"RA_3":null,"RA_4":null}
]
因此,我的最终输出应该是:

[
    {"GA_1":"2","GA_2":"1","GA_3":"2","GA_4":null}, 
    {"SA_1":"1","SA_2":"4","SA_3":null,"SA_4":null}, 
    {"RA_1":"1","RA_2":"2","RA_3":null,"RA_4":"5"}
]
我陷入了如何实现这一目标的困境:

$games = Game::get();

$grid = [];
foreach ($games as $game) {
    $grid[] = collect($game->grid_values);
}

dd(collect('$grid')->flatten());
我得到这个输出:


欢迎提出任何建议。谢谢。

我试过这样的方法:

$games = Game::get();

$d = collect($games)->map(function($item) {
    return json_decode($item->grid_values);
})->flatten();

$x = collect([
    [
        'GA_1' => $d->sum('GA_1'),
        'GA_2' => $d->sum('GA_2'),
        'GA_3' => $d->sum('GA_3'),
        'GA_4' => $d->sum('GA_4'),
        'GA_5' => $d->sum('GA_5'),
        'GA_6' => $d->sum('GA_6'),
        'GA_7' => $d->sum('GA_7'),
        'GA_8' => $d->sum('GA_8'),
        'GA_9' => $d->sum('GA_9'),
        'GA_0' => $d->sum('GA_0'),
    ],
    [
        'SA_1' => $d->sum('SA_1'),
        'SA_2' => $d->sum('SA_2'),
        'SA_3' => $d->sum('SA_3'),
        'SA_4' => $d->sum('SA_4'),
        'SA_5' => $d->sum('SA_5'),
        'SA_6' => $d->sum('SA_6'),
        'SA_7' => $d->sum('SA_7'),
        'SA_8' => $d->sum('SA_8'),
        'SA_9' => $d->sum('SA_9'),
        'SA_0' => $d->sum('SA_0'),
    ],
    [
        'RA_1' => $d->sum('RA_1'),
        'RA_2' => $d->sum('RA_2'),
        'RA_3' => $d->sum('RA_3'),
        'RA_4' => $d->sum('RA_4'),
        'RA_5' => $d->sum('RA_5'),
        'RA_6' => $d->sum('RA_6'),
        'RA_7' => $d->sum('RA_7'),
        'RA_8' => $d->sum('RA_8'),
        'RA_9' => $d->sum('RA_9'),
        'RA_0' => $d->sum('RA_0'),
    ],
]);

return response()->json(['data' => $x], 200);
我得到了预期的结果,任何即兴创作请建议