1. // 二维数组,每条都是键值对数据库数据
    2. $allData = [
    3. ['id'=>1,'name'=>'张三'],
    4. ['id'=>2,'name'=>'李四'],
    5. ['id'=>3,'name'=>'王五'],
    6. ['id'=>4,'name'=>'赵六'],
    7. ['id'=>5,'name'=>'钱七'],
    8. ];
    9. // 每2条切一块
    10. $chunks = array_chunk($allData, 2);
    11. 拆分后结果
    12. [
    13. // 第一块
    14. [
    15. ['id'=>1,'name'=>'张三'],
    16. ['id'=>2,'name'=>'李四']
    17. ],
    18. // 第二块
    19. [
    20. ['id'=>3,'name'=>'王五'],
    21. ['id'=>4,'name'=>'赵六']
    22. ],
    23. // 最后不足2条自成一块
    24. [
    25. ['id'=>5,'name'=>'钱七']
    26. ]
    27. ]
    28. 保留原数组下标(第三个参数 true)
    29. $chunks = array_chunk($allData, 2, true);
    30. TP 批量插入实战代码(二维数组通用)
    31. // 上万条二维入库数据
    32. $bigData = [];
    33. $batch = 500;
    34. // 自动分批
    35. $chunkList = array_chunk($bigData, $batch);
    36. foreach ($chunkList as $rowData) {
    37. // 直接插入,结构完全兼容insertAll
    38. Db::name('user')->insertAll($rowData);
    39. }