[英]Better array_search()
我想按值而不是按键搜索数组。 这是country code => country name
的数组,如下所示。
$countries = array (
'AF' => 'Afghanistan',
'AX' => 'Åland Islands',
'AL' => 'Albania',
'DZ' => 'Algeria',
'AS' => 'American Samoa');
当然,PHP的array_search()
是理想的选择,但是我不想返回找到的元素的键,而是返回值。 我能想到的唯一方法是使用以下内容(来自函数):
return $countries[array_search($string, $countries)];
有没有更好/更快的方法来做到这一点?
我认为您的速度足够快。 就像是
$key = array_search($string, $countries);
return $countries[ $key ];
$countries = array (
'Afghanistan' => 'AF',
'Åland Islands' => 'AX',
);
if (isset($countries[$string])){
return $string;
}
但是,按照您当前的方式,这还不错。
如果我是你,我不会偶然发现这样一个琐碎的“问题”
您可以创建一个镜像数组(一个反向索引)并进行搜索。
如果原始数组根本不经常更改,则可以接受,因为您将有两个数组保持同步。
但我认为,您基本上想要的是一个集合 ,因为您似乎在说,如果“阿尔及利亚”是您的搜索词,那么您想返回“阿尔及利亚”。 因此,要么从数组中的值构建集合并对其进行查找,或者,如果您不想要第二个结构,请使用array_search
但不要回到数组中,或者使用in_array()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.