[英]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.