【发布时间】:2018-05-02 10:27:24
【问题描述】:
我有一个 API 可以显示近 100 笔交易,我想限制为 10 笔。我已经尝试过
if($bitcointrades == 10) break
但这没有用。提取数据后是否运行 for 循环?我是否应该将函数分成两部分而不是使用 elseif 来呈现 $trades?这是我正在使用的:
<?php
require_once('bitcoin.class.php');
$data = new Bitcoin();
$type = $_GET['type'];
$currency = $_GET['currency'];
if($type == 'ticker') {
$bitcoinlive = $data->getPrice($currency);
echo '<h2>1 Bitcoin is currently worth <span class="bitvalue">' .
number_format((float)$bitcoinlive['last'], 2) . ' <span class="upper">'
. $currency . '</span></span></h2>';
echo ' <p><span><i class="icon-arrow-up-circle"></i> High: ' .
number_format((float)$bitcoinlive['high'], 2) . '</span> <span><i
class="icon-arrow-down-circle"></i> Low: ' .
number_format((float)$bitcoinlive['low'], 2) . '</span>';
} elseif($type == 'trades') {
$bitcointrades = $data->getTrades($currency);
foreach($bitcointrades as $trade) {
if($trade['type'] == 'buy') {
$ttype = '<span class="green"><i class="icon-plus-circle"></i> Buy
Order</span>';
} else {
$ttype = '<span class="blue"><i class="icon-circle-minus"></i> Sell
Order</span>';
}
echo' <tr> <th scope="row">' . $ttype . '</th> <td>' . $trade['price']
. ' <span class="upper">' . $currency . '</span></td> <td>' .
$trade['amount'] . '</td> <td>' . $data->timeAgo($trade['date']) .
'</td> </tr>';
}
}
【问题讨论】:
-
如果你不能限制来自API的结果,你可以使用
foreach(array_slice($bitcointrades, 0, 10) ...。 -
你的API链接是什么,也许它有自己的命令来限制结果。你在使用 api.hitbtc.com 吗? – 在这种情况下查看此文档,您可以直接要求限制结果命令/10 api.hitbtc.com/?shell#trades,使用 API 命令比得到 100 结果然后缩短它更好..会节省一些运行时间
-
我正在使用 cex.io。 hitbtc 一样可靠吗?
-
您需要的命令是
limit,将它与您的API Query 一起发送,这是一个更好的方法。 -
@TomBeckerle,不确定 hitbtc 的可靠性。
标签: php function for-loop foreach