2016-04-10 40 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

太谢谢你了! –