javascript或PHP排序x,y坐标数组

时间:2013-06-24 21:45:06

标签: php json sorting

我用以下形式的json数据填充了一个highcharts图: [[X,Y],[X,Y],[X,Y],[X,Y]]

数据首先按x值排序,因为文件会获得未排序的数字列表,然后计算出数字出现的次数。它存储为[number,count]。 它绘制为X,Y,以显示我们的数据库流量。

现在,我想排序,以便我可以在列表中看到10个最常请求的值。 如何通过此Y参数对json对象进行排序?谢谢!

示例数据:

[[4,1],[20,1],[43,1],[57,4],[59,1],[60,1],[61,1],[66,1],[68,3],[70,3],[72,2],[75,1],[77,3],[80,2],[81,3],[82,1],[83,1],[84,4],[85,5],[86,3],[87,1],[88,5],[90,7],[92,5],[95,2],[97,4],[98,4],[99,1],[100,6],[102,5],[103,3],[104,15],[105,3],[108,3],[109,2],[110,2],[111,2],[112,3],[113,7],[114,8],[115,11],[116,7],[117,15],[118,9],[119,4],[120,16],[121,7],[122,4],[123,6],[124,3],[125,1],[126,7],[127,5],[128,13],[129,5],[130,11],[131,13],[132,15],[133,17],[134,14],[135,11],[136,5],[137,5],[138,9],[139,7],[140,2],[141,1],[142,7],[143,2],[144,4],[145,11],[146,10],[147,9],[148,9],[149,7],[150,6],[151,12],[152,3],[153,9],[154,5],[155,6],[156,5],[157,5],[158,8],[159,10],[160,6],[161,2],[162,3],[163,45],[164,3],[165,8],[166,14],[167,12],[168,3],[169,5],[170,3],[171,8],[172,6],[173,9],[174,8],[175,11],[176,24],[177,23],[178,4],[179,3],[180,3],[181,11],[182,7],[183,7],[184,5],[185,7],[186,15],[187,11],[188,12],[189,9],[190,8],[191,6],[192,7],[193,4],[194,3],[195,12],[196,5],[197,8],[198,6],[199,16],[200,4],[201,14],[202,10],[203,9],[204,12],[205,8],[206,6],[207,6],[208,4],[209,12],[210,6],[211,7],[212,8],[213,12],[214,9],[215,7],[216,3],[217,11],[218,13],[219,9],[220,8],[221,12],[222,8],[223,9],[224,2],[225,5],[226,19],[227,9],[228,7],[229,11],[230,5],[231,3],[232,4],[233,11],[234,8],[235,11],[236,10],[237,5],[238,8],[239,15],[240,13],[241,9],[242,7],[243,7],[244,14]]

2 个答案:

答案 0 :(得分:1)

sort与自定义比较功能结合使用:

data.sort(function(a, b){
  return a[1] - b[1];
});

示例:

var data = [[4,1],[20,1],[66,1],[68,3],[70,3],[72,2],[84,1],[96,4],[102,2]];
data.sort(function(a, b){
  return a[1] - b[1];
});
// data now contains:

   [[4,1],[20,1],[66,1],[84,1],[72,2],[102,2],[68,3],[70,3],[96,4]];

如果您想按降序排序,而只需改为b[1] - a[1]

答案 1 :(得分:1)

您可以使用js的sort功能

var myList = [[1,2], [1,1]];
myLisyt.sort(function(item1, item2) {return item1[1] - item2[1]});

结果是:[[1,1], [1,2]]