【发布时间】:2014-03-12 20:19:35
【问题描述】:
我有一个多维国家/地区数组,其中包含:
- 代码 -> 国家代码
- name -> 国名
- flag -> CSS sprite 标志类
针是countryCode,干草堆是$countriesArray。您将如何搜索字符串(国家代码)并返回相应的名称和标志。这个数组是不是构造不好?
数组
$CountriesArray = array(array( code => "bj",
name => "Benin",
flag => "flag flag-bj"
),
array( code => "bw",
name => "Botswana",
flag => "flag flag-bw"
),
array( code => "cg",
name => "Congo",
flag => "flag flag-cg"
)
ect....
);
ANSWER - 数组格式已更新,键为 countryCode
$CountriesArray = array( array( bj => array( name=> "Benin", flag => "flag flag-bj" )),
array( bw => array( name=> "Botswana", flag => "flag flag-bw" )),
array( cg => array( name=> "Congo", flag => "flag flag-cg" ))
);
$n = needle 的搜索数组
function multiDimenArraySearch($n,$h){
foreach($h as $key => $value){
if($key == $n) return $value;
}
}
$n = "bj";
$search = multiDimenArraySearch($n,$CountriesArray);
$name = $search[$n]["name"]; //outputs name
$flag = $search[$n]["flag"]; // outputs flag class
【问题讨论】:
-
一个有意义的键会让它变得更好(例如...
countryCode),因为它只是在foreach中循环并检查$currentvalue['code'] == $countryCode是否与它得到的一样好, 不用多说了吧。 -
你的意思是像 $CountriesArray = array(bj=>array(name=>"Benin",flag=>"flag flag-bj"),array(bw=>array(name=>"博茨瓦纳”等...
-
是的,这样会提高工作效率。
标签: php multidimensional-array