首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >排序数组不适用于负值(PHP 5.4.16)

排序数组不适用于负值(PHP 5.4.16)
EN

Stack Overflow用户
提问于 2018-06-19 05:08:07
回答 1查看 48关注 0票数 0

为什么这个排序对我的'change‘值无效?我尝试了许多不同的方法,但仍然无法对其进行排序(也是使用负值)。该脚本在PHP 5.4.16上运行。

代码语言:javascript
复制
$url = 'https://bittrex.com/api/v2.0/pub/Markets/GetMarketSummaries';
$json= file_get_contents($url);
$data = json_decode($json, true);

$items = array();
foreach($data['result'] as $row) {

$base = $row['Market']['BaseCurrency'];

if($base == 'BTC'){

$created = $row['Market']['Created'];
$newDate = date("d-m-Y", strtotime($created));
$last = number_format((float)$row['Summary']['Last'], 8, '.', '');
$prev = number_format((float)$row['Summary']['PrevDay'], 8, '.', '');
$vol = number_format((float)$row['Summary']['BaseVolume'], 2, '.', '');
$name = $row['Market']['MarketCurrencyLong'];
$market = $row['Market']['MarketCurrency'];
$image = $row['Market']['LogoUrl'];

$newName = "$name ($market)";

$change = number_format((float)(1 - $prev / $last) * 100, 2, '.', '');

$items[] = array('name' => $newName, 'change' => $change, 'logo' => $image, 'symb' => $market, 'vol' => $vol, 'date' => $newDate);

}

}

usort($items, function($a, $b) {
            return ($b['change']) - ($a['change']);
            });

echo '<pre>'; print_r($items); echo '</pre>';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 05:19:39

将比较函数更改为:

代码语言:javascript
复制
return (float)$b['change'] > (float)$a['change'] ? 1 : ((float)$b['change'] < (float)$a['change'] ? -1 : 0);

如果您使用的是PHP7或更高版本,则可以使用宇宙飞船操作符

代码语言:javascript
复制
return (float)$b['change'] <=> (float)$a['change'];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50917490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档