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

PHP多维数组遍历问题:如何获取区域名及对应国家首都?

解决数组遍历的问题

我来帮你梳理下代码里的问题,然后给出正确的写法~

首先先明确你的数组结构,用PHP代码写出来是这样的:

$newDatas = [
    'NorthAmerica' => [
        ['country' => 'Canada', 'capital' => 'Ottawa'],
        ['country' => 'USA', 'capital' => 'Washington']
    ]
];

你的原代码有两个明显的错误:

  1. 外层循环里,你想输出区域名NorthAmerica,但你用了echo $value;——这里$value是区域对应的国家数组,直接输出会显示Array,而区域名其实是$parent变量;
  2. 内层循环你写了foreach($parent as $values),但$parent是字符串(就是NorthAmerica),不是数组,遍历字符串会导致错误,你应该遍历的是$value(也就是区域下的国家数组集合)。

正确的遍历代码

foreach($newDatas as $regionName => $countries) {
    // 输出区域名称
    echo "区域:{$regionName}<br>";
    // 遍历当前区域下的所有国家数据
    foreach($countries as $countryItem) {
        // 输出对应国家的首都
        echo "首都:{$countryItem['capital']}<br>";
    }
}

代码解释

  • 外层foreach:遍历顶层数组,$regionName会拿到NorthAmerica这个区域名,$countries则是该区域下包含所有国家信息的数组;
  • 内层foreach:遍历$countries数组,每次循环的$countryItem就是单个国家的关联数组,直接通过$countryItem['capital']就能获取首都值。

运行这段代码后,会输出:

区域:NorthAmerica
首都:Ottawa
首都:Washington

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:42:58