2013-06-19 40 views
0

標題可能有點混亂,但是如何處理數組並根據給定的值返回密鑰的值。這基本上是用於將數據庫元數據轉換爲可讀格式的數組庫。php本機函數根據密鑰返回值

實施例:

$countries = array('US'=>'United States','MX'=>'Mexico'); 

上述陣列將被視爲一個陣列庫。所以,當我做一個查詢,並在我的結果中,我只有兩個國家的代碼,然後我需要將它轉換爲人類可讀的格式。有沒有一個函數,如果我發送它的兩個國家的代碼,它會返回人類可讀的格式。然後這個函數需要與其他數組庫一起重用。例如功能:

function covert_to_human($key, $array_library) 
+0

爲什麼不使用使用'$ array_library [$關鍵]' – Orangepill

+0

*你希望返回什麼*'人類可讀格式'*? – 2013-06-19 22:17:58

+0

哈哈@Orangepill我沒有想到這一點。我想我忽略了它:/ – user962449

回答

1

這將返回在$ array_library $ key相關聯的值,如果如果該鍵不在$ array_library它的存在,否則將返回一個可選的$默認

function convert_to_human($key, $array_library, $default = null){ 
    if (array_key_exists($key, $array_library)){ 
      return $array_library[$key]; 
    } 
    return $default; 
} 

如果你想要一個簡單的方法來定義和維護查找,你可以將這個概念包裝在一個類中,並使用parse_ini_file來爲數據播種。

class Lookup{ 
    protected $data; 

    public function __construct($iniFile){ 
      $this->data = parse_ini_file($iniFile); 
    } 

    public function lookup($key, $default){ 
      return isset($this->data[$key])?$this->data[$key]:$default; 
    } 
} 

要使用你會創作您查找的

; Countries.ini 
US = "United States of America" 
MS = "Mexico" 
CA = "Canada" 

然後創建的實例,並使用你的類

$countryLookup = new Lookup("Countries.ini"); 
echo $countryLookup->lookup("MX", "Unknown Country"); 
+0

需要添加一個循環,如果他想發送多個$ key值,我認爲他爲該努力設置了 – 2013-06-19 22:21:17

+0

;) – user962449

1
function convert_to_human($key, $library) { 
    return array_key_exists($key, $library) ? $library[$key] : false; 
}