2015-10-05 124 views
0

您好我有一个像下面的维生素A JSON数据格式,menrals,我需要合并单个阵列内的同一JSON按键阵列,合并相同的密钥JSON数据

[ 
    { 
     Vitamins: [ 
      "Please explain details about vitamins.", 
      "Vitamin is a vitamin.:P:D", 
      "7" 
     ] 
    }, 
    { 
     Vitamins: [ 
      "i need more explanation about VitaminD. bcoz i'm new to medicine field ", 
      "i don't know the ans.. :P", 
      "7" 
     ] 
    }, 
    { 
     Minerals: [ 
      "i need more info about Minerals!", 
      "Minerals are found in soils", 
      "8" 
     ] 
    } 
] 

,但我需要改变,因为,请帮助如何合并它

[ 
    { 
     Vitamins: [ 
      { 
       "Please explain details about vitamins.", 
       "Vitamin is a vitamin.:P:D", 
       "7" 
      }, 
      { 
       "i need more explanation about VitaminD. bcoz i'm new to medicine field ", 
       "i don't know the ans.. :P", 
       "7" 
      } 
     ] 
    }, 
    { 
     Minerals: [ 
      "i need more info about Minerals!", 
      "Minerals are found in soils", 
      "8" 
     ] 
    } 
] 

任何帮助表示感谢,提前致谢。

+3

你有什么这么远吗?请张贴你已经试图解决它的代码。 –

+0

你只需要格式化它的权利? –

+0

是的Praveen,但这些是我动态获得,以防万一我可以有10组相同的密钥,我需要合并它 – ManoharSingh

回答

4

使用一个简单的循环foreach

first = [ 
    { 
    Vitamins: [ 
     "Please explain details about vitamins.", 
     "Vitamin is a vitamin.:P:D", 
     "7" 
    ] 
    }, 
    { 
    Vitamins: [ 
     "i need more explanation about VitaminD. bcoz i'm new to medicine field ", 
     "i don't know the ans.. :P", 
     "7" 
    ] 
    }, 
    { 
    Minerals: [ 
     "i need more info about Minerals!", 
     "Minerals are found in soils", 
     "8" 
    ] 
    } 
]; 
last = {}; 
for (var i in first) { 
    if (typeof last[i] == "undefined") 
    last[i] = []; 
    last[i].push(first[i]); 
} 
console.log(last); 

入住JSBin例如控制台。

JSBin:http://jsbin.com/guruxesaco/edit?js,console

+0

我需要合并维生素的价值在同一个密钥内,但是这个循环再次形成相同的json格式 – ManoharSingh

+0

我不明白。它做你想要的。你在说什么关键?你检查了控制台吗? –

+0

感谢您的回复,我的意思是维生素是关键,矿物质是关键,请检查我上面发布的输出格式。 – ManoharSingh

0

您好我回答了我的问题

$t = [ 
    { 
     Vitamins: [ 
      "Please explain details about vitamins.", 
      "Vitamin is a vitamin.:P:D", 
      "7" 
     ] 
    }, 
    { 
     Vitamins: [ 
      "i need more explanation about VitaminD. bcoz i'm new to medicine field ", 
      "i don't know the ans.. :P", 
      "7" 
     ] 
    }, 
    { 
     Minerals: [ 
      "i need more info about Minerals!", 
      "Minerals are found in soils", 
      "8" 
     ] 
    } 
] 

$result = array(); 

$s=0; 



foreach($t as $t1=>$t2) 
{ 

    foreach($t2 as $t3=>$t4) 
    { 

     $result[$t3][$s]=$t4; 
     $s++; 

    } 
} 

,其结果是 回声json_encode($结果);

{ 
Vitamins: [ 
{ 
ques: "Please explain details about vitamins.", 
ans: "Vitamin is a vitamin.:P:D" 
}, 
{ 
ques: "i need more explanation about VitaminD. bcoz i'm new to medicine field...", 
ans: "Vitamin D is found in Sun so please take sun bath daily." 
} 
], 
Minerals: { 
2: { 
ques: "i need more info about Minerals!", 
ans: "Minerals are found in soils" 
} 
} 
} 

感谢您的答案:)