这是我当前的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
});