2014-10-28 32 views
0

的关键,我有以下JSON结合相同的JSON值,使其使用PHP/JavaScript的

[ 
    { 
     "Date" : "10/7/2014", 
     "Data1" : 23 
    }, 
    { 
     "Date" : "10/7/2014", 
     "Data1" : 23 
    }, 
    { 
     "Date" : "10/8/2014", 
     "Data1" : 40 
    }, 
    { 
     "Date" : "10/8/2014", 
     "Data1" : 23 
    }, 
    { 
     "Date" : "10/9/2014", 
     "Data1" : 55 
    }, 
    { 
     "Date" : "10/9/2014", 
     "Data1" : 22 
    }, 
] 

我想同样的日期转换为不同的数据的一个数组关键是每个项目类似下面

[ 
    "10/7/2014" : [{ 
     "Data1" : 23 
    },{ 
     "Data1" : 23 
    }], 
    "10/8/2014" : [{ 
     "Data1" : 40 
    },{ 
     "Data1" : 23 
    }], 
    "10/9/2014" : [{ 
     "Data1" : 55 
    },{ 
     "Data1" : 22 
    }], 
] 

这可能使用php或javascript吗?

感谢您的任何帮助。

+2

是的,你只需要这样做。阅读你的数据。将其写入所需结构中的新阵列。什么部分给你带来麻烦? – meagar 2014-10-28 23:28:34

回答

0

只是循环和采取相应的行动。此外,您最好更改属性名称'Date',因为它是在全局范围上定义的函数。

var data = [ 
    { 
     "date" : "10/7/2014", 
     "Data1" : 23 
    }, 
    { 
     "date" : "10/7/2014", 
     "Data1" : 23 
    }, 
    { 
     "date" : "10/8/2014", 
     "Data1" : 40 
    }, 
    { 
     "date" : "10/8/2014", 
     "Data1" : 23 
    }, 
    { 
     "date" : "10/9/2014", 
     "Data1" : 55 
    }, 
    { 
     "date" : "10/9/2014", 
     "Data1" : 22 
    }, 
] 

var results = {} 

data.forEach(function(obj){ 
    if (obj['date'] in results){ 
    results[obj['date']].push({Data1 : obj['Data1']}); 
    }else{ 
    results[obj['date']] = [{Data1 : obj['Data1']}]; 
    } 
}); 
+0

感谢这是完美的。 – binoy 2014-10-29 17:35:04

+0

不客气! – 2014-10-29 18:19:07

0

您可以使用json_decode($json)

的例子来自php.net

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
json_decode($json) 

将通过您的数据返回

array(5) { 
["a"] => int(1) 
["b"] => int(2) 
["c"] => int(3) 
["d"] => int(4) 
["e"] => int(5) 
}