У меня есть файл JSON страны, как это
[
{
"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>';
}
}
?>
Мне нужно сравнить «код» с заданным значением, а затем вывести соответствующую страну, как я могу найти код для ex. «ГБ», а затем «Великобритания»?
использование array_search
с array_column
1:
$found = array_search( 'DZ', array_column( $array, 'code' ) );
if( $found === False ) echo "Not Found";
else echo $data[$found]['name'];
array_column
возвращает все значения кода: с array_search
вы получаете соответствующий ключ и, если он найден, вы можете повторить соответствующее имя.
1 доступно как PHP> = 5.5
Других решений пока нет …