我必须在最短路径问题中应用 Bellman-Ford算法来计算外汇汇率。我正在使用PHP。起初我以为我会以数组的形式处理数据。但后来我意识到使用数组不是数据结构的绝佳选择,因为我从API获取数据(以json类型返回)。
任何人都可以给我一些关于构建数据的想法? (我将使用费率,金钱符号等)。
这是我处理数据获取的代码(预处理 - >我选择使用数组,然后跳转到bellman-ford算法):
$rates = json_decode($data);
$arraydata = array();
foreach ($rates->rates as $key => $value)
{
//1. USD to another currency
$arraytmp = array();
array_push($arraytmp, $rates->base, $key, $value);
array_push($arraydata, $arraytmp);
//2. another currency to USD
$arraytmp = array();
$nilai = 1 / $value;
array_push($arraytmp, $key, $rates->base, round($nilai, 5));
array_push($arraydata, $arraytmp);
}
但是,我不知道如何获得其他货币之间的汇率(例如CAD到SGD)。我的意思是,我知道如何做到这一点。但货币的数量是166.当然,我们不想手动这样做。
或者,我选择了错误的数据结构吗?
这是JSON中的数据:
{
base : "USD",
rates :
{
"AED": 3.67286,
"AFN": 57.12,
"ALL": 101.2193,
"AMD": 416.650001,
"ANG": 1.78898,
...
}
}
我还想将数据描述成图,我应该继续使用数组吗?