laravel chunk 分块后 第二块数据是对象

使用laravel集合时遇到以下问题

        $collect = collect([1,2,3,4,5,6,7,8,9,10]);
        $collect = $collect->chunk(2);
        $collect->toArray();
        return $collect;

以上代码官方给出的返回数据全是数组格式,但是本人的:
从第二块开始,后面的全都是对象格式

        [
            1,
            2
        ],
        {
            "2": 3,
            "3": 4
        },
        {
            "4": 5,
            "5": 6
        },
        {
            "6": 7,
            "7": 8
        },
        {
            "8": 9,
            "9": 10
        }

请各位赐教,我这是出了什么问题。拜托,谢谢大佬

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 8
$collection = collect([1, 2, 3, 4, 5, 6, 7]);
$chunks = $collection->chunk(2)->map(function ($item) {
    return $item->values()->toArray();
});
dd($chunks->toArray());

分组后没有键重排

2年前 评论
fengcheche (楼主) 2年前
$collect = collect([1,2,3,4,5,6,7,8,9,10]);
$collect = $collect->chunk(2);
$collect = $collect->toArray();
return $collect;

打印结果

array:5 [0 => array:2 [0 => 1
    1 => 2
  ]
  1 => array:2 [2 => 3
    3 => 4
  ]
  2 => array:2 [4 => 5
    5 => 6
  ]
  3 => array:2 [6 => 7
    7 => 8
  ]
  4 => array:2 [8 => 9
    9 => 10
  ]
]
2年前 评论
fengcheche (楼主) 2年前

主要是因为再转json的时候下标不是从0开始,导致认为是对象

2年前 评论

安装你的这种写法,返回的全是对象才对,大的集合对象包含小的集合对象,$collect->toArray();是有返回值的,你的打印是$collect->chunk(2);这个的返回值。它是支持链式写法的$collect = collect([1,2,3,4,5,6,7,8,9,10])->chunk(2)->toArray();我是5.8的版本,是正常的返回值

2年前 评论
fengcheche (楼主) 2年前

laravel7是有这样的问题,我今天也碰到了 :joy:,可能是bug吧

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!