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

PHP中如何无键动态构建二维数组适配SimpleXLSXGen生成Excel?

解决动态构建Excel报表二维数组的问题

问题出在你动态赋值的语法上:$rows[][] = ... 每次执行都会向$rows中新增一个独立的一维数组,导致每个字段值都单独占一行。正确的做法是,先为数据库的每一行创建一个临时一维数组,把所有字段值填充进去后,再将这个临时数组加入到$rows中。

修正后的代码

while ($row = mysqli_fetch_assoc($query)) {
    // 为当前数据库行创建临时数组
    $current_row = [];
    // 注意你原来的循环从i=1开始,是否要包含field0?根据实际需求调整起始值
    for ($i = 0; $i < $field_count; $i++) {
        $current_row[] = $row["field" . $i];
    }
    // 将当前行的数组加入到二维数组中
    $rows[] = $current_row;
}

额外优化(如果字段名和查询结果键完全匹配)

如果你的查询结果里的键就是field0、field1...fieldN,且顺序符合需求,直接用array_values()就能把关联数组转成索引数组,省掉循环:

while ($row = mysqli_fetch_assoc($query)) {
    // 把关联数组的所有值按顺序提取成索引数组,直接加入$rows
    $rows[] = array_values($row);
}

这样生成的二维数组就和你静态写法的结构完全一致,符合SimpleXLSXGen的要求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:35:24