Php 我想对数组进行排序,但我可以';T
我有一个我创建的JSON文件,我想从最大的价格值排序 JSON是这样的:Php 我想对数组进行排序,但我可以';T,php,json,sorting,foreach,Php,Json,Sorting,Foreach,我有一个我创建的JSON文件,我想从最大的价格值排序 JSON是这样的: [ { "username": "elbugato", "sold": 19, "qmimi": 38.5 }, { "username": "Pablo", "sold": 12, "qmimi": 42 }, { "username": "Hqstuff", "sold": 0, "qmimi": "0" }, {
[
{
"username": "elbugato",
"sold": 19,
"qmimi": 38.5
},
{
"username": "Pablo",
"sold": 12,
"qmimi": 42
},
{
"username": "Hqstuff",
"sold": 0,
"qmimi": "0"
},
{
"username": "matchspamm3rs",
"sold": 0,
"qmimi": "0"
},
{
"username": "Pachenko",
"sold": 1,
"qmimi": 1.1
},
我想从最高值对qmimi进行排序
我的php代码如下所示
$sellertop8json = json_decode(get_html('link'));
$i = 1;
sort($sellertop8json->qmimi, SORT_NUMERIC);
foreach($sellertop8json as $top8){
max($top8);
if (++$i == 8) break;
echo '<tr>
<td>'.$top8->username.'</td>
<td># '.$top8->sold.'</td>
<td>$ '.$top8->qmimi.'</td>
</tr>
';
}
$sellertop8json=json_decode(获取html('link'));
$i=1;
排序($sellertop8json->qmimi,sort\u NUMERIC);
foreach($sellertop8json作为$top8){
最高(前8名);
如果(++$i==8)中断;
回声'
“.$top8->用户名。”
#“.$top8->售出。”
$'.$top8->qmimi'
';
}
但它们不是从最大值排序的
我得到的结果是:
看看“帕琴科”,他追求的是一个赚了“0”的卖家
多谢各位
对不起,我英语不好
注:JSON不是原始的,我是从google chrome上使用的一些扩展中复制的,所以JSON不是问题。您需要使用并提供自定义函数来比较元素的字段:
usort($sellertop8json, function($a, $b) {
return $a->qmimi == $b->qmimi ? 0 :
$a->qmimi < $b->qmimi ? 1 : -1;
}
);
usort($sellertop8json,函数($a,$b){
返回$a->qmimi==$b->qmimi?0:
$a->qmimi<$b->qmimi?1:-1;
}
);
如果元素相等,则比较函数必须返回0
;如果第一个元素较低,则小于0
;如果第二个元素较高,则大于0
这可能有点混乱,因为您是从最高点排序的,因此需要交换登录比较-请参阅比较的最后一部分。您应该能够轻松找到在web上排序数组的算法。可能存在重复的