我正在處理一個顯示所有活躍礦工的加密頁面。現在,它從 PHP 中的 API 顯示:
<table class="left">
<tr><th colspan="3">Connected Miners (POOL)</th></tr>
<tr><td class="header">Miners Address</td><td class="header">Shares</td><td class="header">Miners Hashrate</td></tr>
<?php
$poolminers = json_decode(file_get_contents("<<API LINK>>"), false);
foreach ($poolminers->body->primary->shared as $miners) {
echo '<tr><td><a href=<<LINK>>?wallet=' . $miners->worker . '>' . $miners->worker . '</a></td>';
echo '<td>' . round($miners->shares, 2) . '</td><td>';
if ($miners->hashrate / 1000000 < 1000) {
echo round($miners->hashrate / 1000000, 3) . ' MH/s</td></tr>';
}
if ($miners->hashrate / 1000000 > 1000) {
echo round($miners->hashrate / 1000000000, 3) . ' GH/s</td></tr>';
}
}
?>
</table>
我想按礦工的哈希速度排序,但我不確定如何按“下一個”值排序。我嘗試將 $poolminers 放入一個陣列中,但我收到了一個致命錯誤 -
致命錯誤:無法在寫入背景關系中使用函式回傳值
旁注 - 該網站的所有者不希望給出該網站資訊,所以我在實際鏈接所在的位置添加了 <<>> - 對于任何混淆,我們深表歉意。
因此,在閱讀第一個答案后,我想知道我的問題是否與排序無關(盡管這是主要問題),而更多的是如何將 API 的資料轉換為多維陣列?
uj5u.com熱心網友回復:
您可以使用usort函式來實作這一點:usort
此代碼應按哈希率升序對您的資料進行排序:
$json = '[{"hashrate":50},{"hashrate":10},{"hashrate":35},{"hashrate":20}]';
$poolminers = json_decode($json, false);
usort($poolminers, function ($a, $b) {
return $a->hashrate <=> $b->hashrate;
});
foreach ($poolminers as $miners) {
echo $miners->hashrate . PHP_EOL;
}
輸出:
10
20
35
50
如果您想按降序排序,只需像這樣交換 $a 和 $b:
usort($poolminers, function ($a, $b) {
return $b->hashrate <=> $a->hashrate;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/400270.html
上一篇:onedrive-sdk-pythonAPI還活著嗎?
下一篇:大家好!我需要在螢屏上顯示API的第一個物件:http://dummy.restapiexample.com/api/v1/employees
