Php 从多个选项解析JSON数据

Php 从多个选项解析JSON数据,php,json,parsing,Php,Json,Parsing,我正在尝试从以下页面以[{code:SE rate:1.294},{code:UK rate:2.353}]格式解析JSON数据: 我已经实现了一个IP读卡器,它可以在两个字母的国家代码中检测用户的位置。我想从带有“code”的链接中提取正确的数据,并返回值“rate”。我在想我可能需要做一个foreach循环来遍历所有的国家?这是我的代码,我希望这就是你想要的 首先,我创建了一个新数组$output,以使搜索更加容易 $string = file_get_contents("http://w

我正在尝试从以下页面以[{code:SE rate:1.294},{code:UK rate:2.353}]格式解析JSON数据:


我已经实现了一个IP读卡器,它可以在两个字母的国家代码中检测用户的位置。我想从带有“code”的链接中提取正确的数据,并返回值“rate”。我在想我可能需要做一个foreach循环来遍历所有的国家?

这是我的代码,我希望这就是你想要的

首先,我创建了一个新数组
$output
,以使搜索更加容易

$string = file_get_contents("http://www.mycurrency.net/service/rates");
$json = json_decode($string, true);

foreach ($json as $key => $data) {
    $output[$key]['code'] = $data['code'];
    $output[$key]['rate'] = $data['rate'];
}
之后,我们使用一个函数来搜索数组中的值并返回键。我是从你那儿得到的

然后我使用第一个参数作为国家代码运行函数,以获取特定国家代码的密钥

$find = searchForRate("BT", $output);
然后通过输入
$find
变量从
$output
数组中返回速率

echo 'RATE = '.$output[$find]['rate'];
这是完整的代码

<?php

$string = file_get_contents("http://www.mycurrency.net/service/rates");
$json = json_decode($string, true);

foreach ($json as $key => $data) {
    $output[$key]['code'] = $data['code'];
    $output[$key]['rate'] = $data['rate'];
}

function searchForRate($countryCode, $array) {
   foreach ($array as $key => $val) {
       if ($val['code'] === $countryCode) {
           return $key;
       }
   }
   return null;
}

$find = searchForRate("BT", $output);
echo 'RATE = '.$output[$find]['rate'];

可能与Plus重复您的问题没有发布任何代码,因此不清楚您在问什么。顺便说一句,数据不准确,它显示我的国家印度尼西亚为“东帝汶”,但货币为印尼盾,而东帝汶/TP货币为印尼盾USD@RajdeepPaul老实说,我不知道从哪里开始,这对我来说是全新的。@MuhammadIbnuh好的地方,这是我能找到的最好的免费源数据,也许我可以在脚本中转换。谢谢这项工作,我不太明白第一部分它是否将数组减少到只包含代码和速率?我不知道性能,只是个人偏好。您可以跳过该步骤,继续搜索
$json
<?php

$string = file_get_contents("http://www.mycurrency.net/service/rates");
$json = json_decode($string, true);

foreach ($json as $key => $data) {
    $output[$key]['code'] = $data['code'];
    $output[$key]['rate'] = $data['rate'];
}

function searchForRate($countryCode, $array) {
   foreach ($array as $key => $val) {
       if ($val['code'] === $countryCode) {
           return $key;
       }
   }
   return null;
}

$find = searchForRate("BT", $output);
echo 'RATE = '.$output[$find]['rate'];
RATE = 64.13