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

PHP/MySQL:While循环添加多维关联数组失败,生成两个独立数组

问题解决:MySQL数据存入多维关联数组的输出误区

你的代码逻辑本身是正确的,问题出在打印数组的时机:你把print_r($Array);写在了while循环内部,导致每读取一条数据就打印一次当前的数组状态,所以看起来像是生成了两个独立数组,但实际上$Array已经是你想要的多维关联数组了。

修正后的代码

<?php
//GO GET THE DATA
$sql = "SELECT * FROM contacts";
$result = $mysqli->query($sql);

//SET THE ARRAY
$Array = [];
    
if ($result->num_rows > 0) {
    // 读取数据并添加到数组
    while($row = $result->fetch_assoc()) {                            
        $Array[] = [
            'name'  => $row["name"],
            'email' => $row["email"]
        ];
    }
    // 循环结束后再打印完整数组
    print_r($Array);
}
?>

现象原因说明

  • 第一次循环:$Array添加了John的数据,此时打印的是仅含一个元素的数组
  • 第二次循环:$Array追加了Paul的数据,此时打印的是包含两个元素的数组
  • 你看到的两次输出是数组逐步构建的过程,而非两个独立的数组

手动添加数据时,你是先完成所有元素的插入,再执行一次打印,所以直接得到了完整的多维数组,这和修正后代码的输出结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:42:04