我如何利用这个json来根据价格进行排序


How can i resort this json to sort on price?

这是我当前的json数组,有可能在价格下降时使用该数组吗?我一直无法弄清楚我需要做什么才能获得正确的输出

Array
(
    [5952418516] => Array
        (
            [id] => 5952418516
            [name] => AK-47 | Redline (Field-Tested)
            [image] => https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEmyVQ7MEpiLuSrYmnjQO3-UdsZGHyd4_Bd1RvNQ7T_FDrw-_ng5Pu75iY1zI97bhLsvQz
            [type] => weapon
            [price] => 4.73
        )
    [5912178664] => Array
        (
            [id] => 5912178664
            [name] => AWP | Worm God (Field-Tested)
            [image] => https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAZx7PLfYQJW-9W4kb-GkvP9JrafxG0GscMhjLqW9t7zjVfn8hc6MmmnI9CTclRrYgrU_Vfowefs18K6uIOJlyXpUGetdA
            [type] => weapon
            [price] => 0.78
        )
[5746271006] => Array
    (
        [id] => 5746271006
        [name] => AWP | Hyper Beast (Factory New)
        [image] => https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJK9cyzhr-JkvbnJ4Tdn2xZ_Ismju2To9qm31Hsr0ZsMTryJo_BcANrMwyCrFLrx7vrhJa1vZrByXo2pGB8sr2_Epwm
        [type] => weapon
        [price] => 54.2
    )
)

问候

是的,通过使用uasort,您可以比较值并根据比较对数组进行排序。

uasort($array, function($a,$b) {
   return $a['price'] < $b['price'] ? -1 : 1;
});

https://eval.in/564645

您在这里使用哪种语言?PHP还是Javascript?提供的大多数解决方案都是基于PHP的。如果您可以控制源代码,并且希望在将其作为JSON发送之前对数据进行排序;PHP是像@RomanPerekhrest和@hd已经建议的那样发展的方式——尽管我在这里再次添加只是为了强调一下:

    <?php
        $gamePayload = "COLLECTION_OR_ARRAY_OF_DATA_FROM_DATASOURCE_LIKE_DB_OR_SO";
        uasort($gamePayload, function($gp1, $gp2){
            return $gp2['price'] - $gp1['price']; 
        });
        // SORTS THE THE DATA IN DESCENDING ORDER.
        // IF YOU WANT IT SORTED IN ASCENDING ORDER;
        // CHANGE::  return $gp2['price'] - $gp1['price'] 
        // TO::      return $gp1['price'] - $gp2['price']

另一方面,如果JSON数据来自另一个源(这意味着你不能做太多改变数据源的排序),Javascript就是这样做的方法:

<script type="text/javascript">
var jsonData    = [
    {
        id:     5952418516,
        name:   'AK-47 | Redline (Field-Tested)',
        image:  'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEmyVQ7MEpiLuSrYmnjQO3-UdsZGHyd4_Bd1RvNQ7T_FDrw-_ng5Pu75iY1zI97bhLsvQz',
        type:   'weapon',
        price:  4.73
    },
    {
        id:     5912178664,
        name:   'AWP | Worm God (Field-Tested)',
        image:  'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAZx7PLfYQJW-9W4kb-GkvP9JrafxG0GscMhjLqW9t7zjVfn8hc6MmmnI9CTclRrYgrU_Vfowefs18K6uIOJlyXpUGetdA',
        type:   'weapon',
        price:  0.78
    },
    {
        id:     5746271006,
        name:   'AWP | Hyper Beast (Factory New)',
        image:  'https://steamcommunity-a.akamaihd.net/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17PLfYQJK9cyzhr-JkvbnJ4Tdn2xZ_Ismju2To9qm31Hsr0ZsMTryJo_BcANrMwyCrFLrx7vrhJa1vZrByXo2pGB8sr2_Epwm',
        type:   'weapon',
        price:  54.2
    }
];
var mm = jsonData.sort(function(jsonObj1, jsonObj2) {
    return parseFloat(jsonObj1.price) - parseFloat(jsonObj2.price);
});
// DISPLAYS THE DATA IN DESCENDING ORDER.
// IF YOU WANT IT SORTED IN ASCENDING ORDER;
// CHANGE::  return parseFloat(jsonObj1.price) - parseFloat(jsonObj2.price) 
// TO::      return parseFloat(jsonObj2.price) - parseFloat(jsonObj1.price)
console.log(mm); 

uasort函数用于以下目的:

// $arr is your initial array
uasort($arr, function($a, $b){
    return $b['price'] - $a['price']; // sorting by descending price
});