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

PHP动态多维数组无法正确获取数据的技术求助

问题分析与解决方案

你遇到的问题核心很清晰:你创建的二级数组是关联数组(用col1、col2作为自定义键名),但循环访问时却误用了数字索引[0]和[1],这自然取不到正确的值,甚至会让PHP输出Array(如果错误提示级别未开启,尝试访问不存在的数组元素就会出现这个默认输出)。

修正后的循环代码

直接把数字索引替换成你定义的关联键名就能解决问题:

for($i = 0; $i < count($groups); ++$i) {
    for($j = 0; $j < count($$groups[$i]); ++$j) {
        echo $$groups[$i][$j]['col1'] . " - " . $$groups[$i][$j]['col2'] . "<br>";
    }
}

更优雅的写法(推荐)

用foreach循环会更直观,还能避免count()在循环中重复计算的性能问题,代码可读性也更高:

foreach ($groups as $groupName) {
    // 用${$groupName}代替$$groupName,写法更清晰易懂
    foreach (${$groupName} as $item) {
        echo $item['col1'] . " - " . $item['col2'] . "<br>";
    }
}

为什么var_dump能看到数据?

因为var_dump会完整输出数组的所有结构,包括关联键和对应的值,所以你能确认数据确实存在,但关联数组的键不是默认的数字序列,必须用你定义的字符串键名col1、col2才能正确访问对应内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:15:05