繁体   English   中英

PHP的多维数组需要帮助

[英]php multi-dimensional array help needed

我有此数组(此问题的缩写),并且我需要提取country_code(在此演示中为“ AF”和“ AL”),以便将地区信息插入到基于国家/地区的表格中。

在迭代数组时如何获取国家/地区代码,这是这样做的正确方法吗?

$countries = array("AF" => array("BDS" => "Badakhshan",
                                 "BDG" => "Badghis",
                                 "BGL" => "Baghlan",
                                 "BAL" => "Balkh",
                                 "BAM" => "Bamian",
                                 "DAY" => "Daykondi"),
                   "AL" => array("BR" => "Berat",
                                 "BU" => "Bulqizë",
                                 "DL" => "Delvinë",
                                 "DV" => "Devoll",
                                 "DI" => "Dibër",
                                 "DR" => "Durrës",
                                 "EL" => "Elbasan",
                                 "FR" => "Fier")
);

foreach ($countries as $country) {
  $country_code = $country[]; // How do I get the country code here?
  foreach ($country as $region_code => $region_name) {
    // insert region info into table
  } // foreach ($country as $region_code => $region_name)
} // foreach ($countries as $country)
foreach($countries as $code => $list) {
 foreach($list as $rcode => $name) {

 }
}

code和rcode将具有两个区域代码

我在评论中提到,那是唯一的方法,但我纠正了

foreach($countries as $country)
{
        $code = array_keys($countries, $country);
        $code = $code[0];
}

可能会为您提供所需的东西,超级奇怪的方式来做,我不建议您使用它。 第一种方法比较好

使用key => value对设置数组,这意味着您有一个值以及该值的标识符。

$myArray = array( "Key" => "Value" );

或者,对于您的代码:

$myArray = array( "Country Code" => array( "Region" => "Codes" ) );

如果希望在循环时获取密钥,请使用以下语法:

foreach ( $myArray as $key => $value ) {
  echo $key; // "Country Code"
  foreach ( $value as $region_key => $region_code ) {
    echo $region_key; // Region
  }
}

现在,您可以在每次迭代中访问标识符。

好吧,您已经在嵌套循环中使用它了:

foreach ($countries as $country_code => $country) {
    foreach ($country as $region_code => $region_name) {
        // foobar
    }
}

变量$country_code然后保存国家代码。

while($country = current($countries)){
    while($region = current($country)){
        echo "region:".$region."(".key($country).")"." country:".key($countries);
        next($country);
    }
    next($countries);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM