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

Laravel中如何将嵌套数组内的子数组合并为单个一维数组

问题原因

你之前的array_merge写法失效,核心是多余用array()包裹了$data:$data本身就是待拆分的二维数组,额外套一层数组后,不管是调用call_user_func_array还是用展开运算符,实际传入array_merge的参数只有整个嵌套数组这一个元素,根本没有拆分出内部的子数组,自然得不到合并结果。

可用实现方案

你可以根据项目场景选下面任意一种写法:

  • 原生PHP修正写法
    去掉多余的数组包裹,直接对$data使用展开运算符即可,加空数组兜底可以避免$data为空时抛出报错:
    // 通用兼容写法,空数组也能正常返回空结果
    $merged = array_merge([], ...$data);
    
  • Laravel集合写法(Laravel项目优先推荐)
    用Laravel集合自带的collapse()方法即可,不需要考虑PHP版本兼容、空数组报错问题,会自动把第一层的所有子数组合并为单个结构,保留原数据的对象格式:
    $merged = collect($data)->collapse()->toArray();
    

以上两种写法处理你提供的示例数据,都能得到你预期的一维结构,和你给出的目标结果完全一致。

内容的提问来源于stack exchange,提问作者Sagar Sheregar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:18:23