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

在PHP(Laravel)中如何扁平化并合并关联数组得到目标结构?

问题根因

你当前的写法中,map方法会返回由多个单键数组成的集合,作为单独元素插入外层数组时会被自动分配数字下标0,且内部的键值对无法平铺到外层结构,所以会出现你遇到的输出格式。

修复代码

直接使用Laravel集合的pluck方法一键生成符合要求的键值对结构,再和外层数组合并即可,写法最简洁:

return [
    'image' => $this->image,
] + $this->categories()->pluck('pivot.image', 'name')->all();

如果后续需要对分类值做额外逻辑处理,可以用mapWithKeys替代map,实现自定义键的集合生成:

return [
    'image' => $this->image,
] + $this->categories()->get()->mapWithKeys(function ($category) {
    return [
        $category->name => $category->pivot->image
    ];
})->all();

两种写法最终输出的结构都和你期望的完全一致。


内容的提问来源于stack exchange,提问作者ali alizade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:00:05