Php 从多个选项解析JSON数据
我正在尝试从以下页面以[{code:SE rate:1.294},{code:UK rate:2.353}]格式解析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
我已经实现了一个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