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

如何转换MySQL查询返回的数组结构?技术求助

解决MySQL查询结果数组结构转换问题

嘿,我看了你的代码和需求,其实问题出在你当前构建数组的方式上——你现在是把每个字段的所有值单独收集成数组,最后再按字段合并,这就导致了按字段分组的结构。要转换成按行分组的形式,只需要调整循环里的数组构建逻辑就行:

修改后的代码

<?php
$table_content = []; // 初始化空数组,用来存按行分组的数据
if ($result->num_rows > 0) { 
    // 遍历每一行查询结果
    while($row = $result->fetch_assoc()) { 
        // 把当前行的ITEM和REFERENCE打包成一个关联数组,加入结果数组
        $table_content[] = [
            'ITEM' => $row["item"],
            'REFERENCE' => $row["reference"]
        ];
    } 
} 

// 输出查看结果
echo '<pre>'; 
print_r($table_content); 
echo '</pre>';
?>

为什么这样改?

  • 原来的代码是把所有item值塞进$item_array,所有reference值塞进$reference_array,最后合并成['ITEM' => [...], 'REFERENCE' => [...]]的结构。
  • 修改后,我们每次循环都把单一行的ITEM和REFERENCE组合成一个小关联数组,然后把这个小数组追加到$table_content里,最终就得到了你想要的[0 => [...], 1 => [...]]按行分组的结构。

如果你的查询结果里还有其他字段需要保留,也可以直接把整行数据加进去,比如$table_content[] = $row;,这样每个元素就是包含所有字段的关联数组啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:16:32