简单的无名json数组转换为映射的JS或PHP数组

时间:2016-05-19 15:21:52

标签: javascript php arrays json multidimensional-array

我有这样的json查询结果,我需要转换成图形

[

    [1461931160000,583],
    [1461932077000,732.16668701172],
    [1461932587000,513.16668701‌​172],
    [1461933430000,675.66668701172],
    [1461934599000,462.66665649414],
    [14619357000‌​00,521.5]

]

第一个值应该成为一个数组,第二个值应该成为另一个数组。 我尝试了jquery map()和Array.protoype.map(),但我无法弄明白。 任何PHP或JS方法都深受赞赏。

2 个答案:

答案 0 :(得分:1)

你有一个二维数组。要将其拆分为列,您只需迭代数组并将值推送到新数组

var data = [[1,2],[1,2]];
var firstValues=[];
var secondValues=[];
for(var i=0; i < data.length; i++){
    firstValues.push(data[i][0]);
    secondValues.push(data[i][1]);
}

答案 1 :(得分:1)

另一种方法是使用Array.prototype.reduce(),如下所示;

var data = [

    [1461931160000,583],
    [1461932077000,732.16668701172],
    [1461932587000,513.16668701172],
    [1461933430000,675.66668701172],
    [1461934599000,462.66665649414],
    [1461935700000,521.5]

],
reduced = data.reduce((p,c) => (p[0].push(c[0]),p[1].push(c[1]),p) ,[[],[]]);

document.write("<pre>" + JSON.stringify(reduced,null,2) + "</pre>");