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

Laravel Collection chunk方法返回异常格式问题求助

Laravel集合chunk转数组出现关联数组的解决办法

问题原因

你的代码中,chunk()方法返回的是由多个子集合组成的集合,每个子集合会保留原集合里元素的原始索引键。当调用all()转成数组时,第一个子集合的元素索引是0-3(连续序列),所以输出为索引数组;第二个子集合的元素索引是4-6(非从0开始的连续键),PHP会保留这些原始键,最终呈现为关联数组格式,这就是你看到异常键值对的原因。

解决方法

方法1:重置子集合的键后转数组

对每个chunk子集合调用values()方法重置索引键,再转成数组:

$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$chunks = $collection->chunk(4)
    ->map(fn($chunk) => $chunk->values()->all())
    ->all();

执行后得到的结果与你的期望一致:

[[1, 2, 3, 4], [5, 6, 7]]

方法2:直接输出JSON(若需求为JSON格式)

如果最终目的是输出JSON字符串,直接调用toJson()方法即可,Laravel会自动将子集合处理为索引数组:

$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$json = $collection->chunk(4)->toJson();
// 输出结果:"[[1,2,3,4],[5,6,7]]"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:50:46