Php 我想对数组进行排序,但我可以';T

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" }, {

我有一个我创建的JSON文件,我想从最大的价格值排序

JSON是这样的:

[
  {
    "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上排序数组的算法。可能存在重复的