2016-04-10 75 views
-2

我有一個國家這樣比較JSON字符串在PHP

[ 
    { 
     "name": "Afghanistan", 
     "code": "AF" 
    }, 
    { 
     "name": "Åland Islands", 
     "code": "AX" 
    }, 
    { 
     "name": "Albania", 
     "code": "AL" 
    }, 
    { 
     "name": "Algeria", 
     "code": "DZ" 
    }, 
    { 
     "name": "American Samoa", 
     "code": "AS" 



<?php 
    $string = file_get_contents('countries.json'); 
    $array = json_decode($string, true); 

    foreach ($array as $person_name => $person_a) { 
     if(strcmp($person_name,'HR')==0) 
     { 
      echo $person_a['name'].'<br>'; 
     } 
} 
?> 

我需要的「代碼」比較給定值,然後輸出匹配全國JSON文件,嗷嗷做我找到前的代碼。 'GB'然後輸出'英國'?

回答

1

使用array_searcharray_column

$found = array_search('DZ', array_column($array, 'code')); 
if($found === False) echo "Not Found"; 
else     echo $data[$found]['name']; 

array_column返回所有的 '代碼' 值:與array_search您檢索對應的按鍵,如果它被發現,你可以重複相應的名稱。


可作爲PHP> = 5.5

+0

太謝謝你了! –