Как отформатировать результат дампа var (массив)

#php #arrays #json

Вопрос:

У меня есть этот код, который получает массив из URL-адреса API.

                  <?php
                 $url = 'https://api.example.com/v1/w';
                 $data = file_get_contents($url);
                 $data = json_decode($data);
                 echo '<pre>' , var_dump($data->rule->deny_countries) , '</pre>';
                 ?>
 

Он отображает это:

        array(3) {
       [0]=>
       string(2) "US"
       [1]=>
       string(2) "ES"
       [2]=>
       string(2) "MX"
      }
 

Как я могу печатать только значения строк? (US, ES и MX), которые являются кодами стран, и я хочу преобразовать их в полное название страны, например: Соединенные Штаты, Испания, Мексика.

Ответ №1:

Вы можете распечатать код страны с помощью этого кода:

 $country_code = $data->rule->deny_countries;
echo $country_code[0]; // print US
echo $country_code[1]; // print ES
// ecc.
 

Вы можете создать массив для преобразования кода страны в название страны следующим образом:

 $country_name = array("US"=>"United States", "ES"=>"Spain", "MX"=>"Mexico");
 

И затем вы можете напечатать название страны с помощью этого кода

 echo $country_name[$country_code[0]]; // print United States
echo $country_name[$country_code[1]]; // print Spain
// ecc.
 

Комментарии:

1. я действительно ценю тебя @Stefino76 сейчас он работает panelcws.com/axel/decode.php Могу ли я добавить img перед названием страны в массиве?

2. Я хочу поставить флаг img страны перед именем, заранее благодарю!

3. Вы можете создать другой массив, например $img_file = array(«US»=> «us.png», «ES»=> «sp.png», «MX»=>»mx.png»); а затем повторить ‘<div><img src=»‘. $img_file[$country_code[1]].'»>’.$ имя_страны_[$country_code[1]].'</div>’;

4. @AxelGomez — … или просто вызывайте изображения US.png и так далее и делайте: src="' . $country_code[0] . '.png"

5. Спасибо!! @Stefino76 теперь работает! Ты мужик!