You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并并求和具有相同键的简单Laravel Collections?

多个同键Laravel Collection对应值求和实现

我有三个键名相同、对应数值不同的Laravel Collections,需要将它们的对应键值求和。示例如下:

$broadInventory = collect(['horse' => 300, 'cow' => 400, 'entropy' => 400]);
$ericaInventory = collect(['horse' => 10, 'cow' => 20, 'entropy' => 30]);
$johnsonInventory = collect(['horse' => 5, 'cow' => 9, 'entropy' => 3]);

期望得到的结果为:

collect(['horse' => 315, 'cow' => 429, 'entropy' => 433]);

本以为操作很简单,实际却比预想的难!

编辑:感谢Abdulla的帮助,我最终写出了如下实现代码:

private function sumCollections(Collection ...$collections) {
    $merge = collect($collections);
    $keys = $collections[0]->keys();

    return $merge->pipe(
        static function ($item) use ($keys) {
            return collect([
                $keys->mapWithKeys(fn($key) => [$key => $item->sum($key)])
            ]);
        }
    );
}

内容的提问来源于stack exchange,提问作者Jason Tangson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:20:20