2012-09-04 36 views
14

任何想法如何檢查密鑰是否存在,如果是,那麼從php中的數組獲取該密鑰的值。檢查一個密鑰是否存在並從PHP中的數組中獲取對應的值

E.g.

我有此數組:

$things = array(
    'AA' => 'American history', 
    'AB' => 'American cooking' 
); 

$key_to_check = 'AB'; 

現在,我需要檢查,如果$ key_to_check存在,如果這樣做,得到在這種情況下將美國烹飪coresponding值

+1

[你有什麼想法](http://www.whathaveyoutried.com)? – Matt

+0

馬特我已經嘗試http://www.php.net/manual/en/function.array-key-exists.php,但我越來越複雜。其實很簡單。順便說一句。檢查標記來自我的評論。我已經嘗試了3次,從jack上發表我對上一個問題的評論,因爲這真的是不合時宜的,沒有任何版主的迴應。提前致謝。 – Derfder

+0

如果你碰巧使用Laravel,他們有一些很好的數組幫助函數。例如:'array_get($ things,$ key_to_check,'可選默認值');'https://laravel.com/docs/5.1/helpers#method-array-get – Justin

回答

21
if(isset($things[$key_to_check])){ 
    echo $things[$key_to_check]; 
} 
+0

非常感謝,我會給你打個勾在一分鐘左右 – Derfder

1

最簡單的方法是這樣做的:

if(isset($things[ $key_to_check ])) { 
    $value = $things[ $key_to_check ]; 
    echo "key exists. Value: ${value}"; 
} else { 
    echo "no such key in array"; 
} 

,你會得到的值通常的方式:

$value = $things[ $key_to_check ]; 
+0

,你應該如何返回相應的值? – Phil

+0

查看編輯答案 –

19
if (array_key_exists($key_to_check, $things)) { 
    return $things[$key_to_check]; 
} 
+0

'echo'或'return'?他不在功能... –

+3

但是他想要實現它,他的代碼是不完整的。 – JaredMcAteer

+0

如果他不知道如何根據某個鍵獲得價值,那麼您期望瞭解您的意思? –

0

只需使用isset(),如下,如果你想使用它作爲一個功能,您可以使用它:

function get_val($key_to_check, $array){ 
    if(isset($array[$key_to_check])) { 
     return $array[$key_to_check]); 
    } 
} 
14

我知道這個問題很老,但對於那些將來到這裏的人知道在php7中可以使用Null Coalesce Operator

if ($value = $things[ $key_to_check ] ?? null) { 
     //Your code here 
} 
相關問題