0

While updating, couchDB json documents having two separate arrays. But i push one array into particular array of objects.

 {

"_id":"employee_skill_doc",
"_rev":"269-e99377ad5d9e746a9d5b4777e7a50e46",
 "skills":[
 {
  "skill_name": "Dassault Simulia",
  "skill_id": "En17",
  "skill_set_id": "c03",
  "skill_set": "CAE (Computer Aided Engineering)",
  "skill_sub_ID": "b02",
  "skill_cat_ID": "a01"
 }],
 "certification":[
 {
  "certification_type": "networking",
  "certification_company": "citrix",
  "certification_name": "citrix",
  "certified_year": "1992",
  "certified_valitidy": "01/2014",
  "marks":"90",
  "comments":"sample",
  "skill_id": "En17"
 }]
 }

Here, mentioned the expected output,

{

"_id": "employee_skill_doc",
"_rev": "269-e99377ad5d9e746a9d5b4777e7a50e46",
"skills": [{
 "skill_name": "Dassault Simulia",
 "skill_id": "En17","skill_set_id": "c03",
 "skill_set": "CAE (Computer Aided Engineering)",
 "skill_sub_ID": "b02","skill_cat_ID": "a01",
 "certification": [ {
 "certification_type": "networking",
 "certification_company": "citrix","certification_name": "citrix",
 "certified_year": "1992",
 "certified_valitidy": "01/2014",
 "marks": "90",
 "comments": "sample",
 "skill_id": "En17"
  }]
}]

}
Satish Sharma
  • 9,547
  • 6
  • 29
  • 51
Nithya
  • 11
  • 2

1 Answers1

0

try this

<?php
$json = ' {

"_id":"employee_skill_doc",
"_rev":"269-e99377ad5d9e746a9d5b4777e7a50e46",
 "skills":[
 {
  "skill_name": "Dassault Simulia",
  "skill_id": "En17",
  "skill_set_id": "c03",
  "skill_set": "CAE (Computer Aided Engineering)",
  "skill_sub_ID": "b02",
  "skill_cat_ID": "a01"
 }],
 "certification":[
 {
  "certification_type": "networking",
  "certification_company": "citrix",
  "certification_name": "citrix",
  "certified_year": "1992",
  "certified_valitidy": "01/2014",
  "marks":"90",
  "comments":"sample",
  "skill_id": "En17"
 }]
 }';

 $arr = json_decode($json, true);
 $arr['skills'][0]['certification'] =  $arr['certification'];
 unset($arr['certification']);
 $json_new = json_encode($arr, JSON_PRETTY_PRINT);
 echo $json_new;
 ?>

OUTPUT :

{
"_id":"employee_skill_doc",
"_rev":"269-e99377ad5d9e746a9d5b4777e7a50e46",
"skills":[
    {
    "skill_name":"Dassault Simulia",
    "skill_id":"En17",
    "skill_set_id":"c03",
    "skill_set":"CAE (Computer Aided Engineering)",
    "skill_sub_ID":"b02","skill_cat_ID":"a01",
    "certification":[
        {
        "certification_type":"networking",
        "certification_company":"citrix",
        "certification_name":"citrix",
        "certified_year":"1992",
        "certified_valitidy":"01\/2014",
        "marks":"90","comments":
        "sample","skill_id":"En17"
        }]
    }]
}

SEE DEMO

Satish Sharma
  • 9,547
  • 6
  • 29
  • 51
  • I was going to suggest something similar but it seems to me that since there is an array you probably need some sort of matching criteria for the skill to the certification... – Randall Hunt Sep 04 '14 at 18:28