You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP条件提取JSON汇率数据及生成有效JSON问题求助

PHP汇率数据处理解决方案

问题1:基于货币名称稳定获取指定汇率

别依赖数组索引,直接根据FROM_CURR_NAME和TO_CURR_NAME做条件匹配就行。假设你已经通过curl获取并解析得到了汇率数组$exchangeRates,可以这么处理:

// 定义需要获取的目标货币对
$targetPairs = [
    ['from' => 'EUR', 'to' => 'GBP'],
    ['from' => 'EUR', 'to' => 'TRY'],
    ['from' => 'USD', 'to' => 'GBP'],
];

$filteredRates = [];

// 遍历所有汇率数据,匹配目标货币对
foreach ($exchangeRates as $rate) {
    foreach ($targetPairs as $pair) {
        if ($rate['FROM_CURR_NAME'] === $pair['from'] && $rate['TO_CURR_NAME'] === $pair['to']) {
            $filteredRates[] = [
                'currency_pair' => $pair['from'] . '→' . $pair['to'],
                'sell_rate' => $rate['SELL_RATE'],
                'buy_rate' => $rate['BUY_RATE']
            ];
            // 找到匹配项后跳出内层循环,避免重复匹配
            break;
        }
    }
}

// 此时$filteredRates里就是你需要的稳定数据

不管原数组索引怎么变,只要货币名称字段不变,就能准确拿到对应汇率。

问题2:修复无效JSON格式问题

别手动拼接JSON字符串,PHP内置的json_encode()函数会自动处理格式、转义等问题,确保生成的JSON有效。

错误示例(手动拼接导致的格式问题):

// 错误做法:手动拼接字符串,容易出现多余引号、转义错误
$jsonStr = '[';
foreach ($filteredRates as $item) {
    $jsonStr .= '{"currency_pair":"' . $item['currency_pair'] . '", ...},';
}
$jsonStr .= ']';

正确做法:直接将PHP数组转成JSON:

// 用json_encode直接生成标准JSON
$validJson = json_encode($filteredRates, JSON_PRETTY_PRINT);

// 输出或使用这个JSON字符串
echo $validJson;

JSON_PRETTY_PRINT参数是可选的,用于格式化输出方便阅读,生产环境可以去掉。这样生成的JSON完全符合规范,不会出现多余引号或格式错误。

内容的提问来源于stack exchange,提问作者Kleidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 22:22:47