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