我必须将Bellman-Ford 算法应用于外汇汇率的最短路径问题 。我正在使用 PHP。起初我以为我会以数组的形式处理数据。但后来我意识到使用数组并不是数据结构的好选择,因为我从 API 获取数据(以 json 类型返回)。
任何人都可以给我一些关于构建数据的想法吗?(我将使用费率、货币符号等)。
这是我处理数据获取的代码(预处理->我选择使用数组,在跳转到贝尔曼福特算法之前):
$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,
...
}
}
而且我还想将数据描述成图表,我应该继续使用数组吗?