Juned Ansari Juned Ansari - 1 month ago 16
JSON Question

append new data at the end of json in php

I am trying to append new data at the end of predefined JSON.
i want to append new data as an element of existing json. i mean data is appended as new element of json.

$jsonData = array();
if (!empty($json_mainQuot)) {
$jsonData['mainQuot'] = $json_mainQuot;
}
if (!empty($json_quotation_hotel)) {
$jsonData['quotation_hotel'] = $json_quotation_hotel;
}
$tempArray[] = json_decode($state_current_arr[0]['user_date']);
array_push($tempArray, $jsonData);
$jsonData_merged = json_encode($tempArray);


it look like this

[{
"id": "77",
"agent_id": "30524",
"raised_by": "C",
"from_date": "2016-11-09",
"to_date": "2016-11-10",
"num_of_days": "1",
"num_of_country": "1",
"LeadConsultant": {
"user_id": "3045",
"lead_id": "77"
},
"LeadDestination": [{
"from_date": "2016-11-09",
"to_date": "2016-11-10",
"country_id": "IN",
"city_id": "67457",
"notes": "",
"is_hotel": "1",
"is_sight": "1",
"is_transfer": "1",
"lead_id": "77"
}]
}, {
"mainQuot": {
"supplier_markup": "0",
"lead_destination_id": "168",
"user_id": "1",
"quot_via": 0
},
"quotation_hotel": {
"lead_quot_id": "36",
"hotel_id": "578917",
"giata_id": "531264",
"ratings": "3",
"address": "Opposite ST Stand,Alibag 402201",
"notes": "testing"
}
}]


but i want like this

[{
"id": "77",
"agent_id": "30524",
"raised_by": "C",
"from_date": "2016-11-09",
"to_date": "2016-11-10",
"LeadConsultant": {
"user_id": "3045",
"lead_id": "77"
},
"mainQuot": {
"supplier_markup": "0",
"lead_destination_id": "168",
"user_id": "1",
"quot_via": 0
},
"quotation_hotel": {
"lead_quot_id": "36",
"hotel_id": "578917",
"giata_id": "531264",
"ratings": "3",
"address": "Opposite ST Stand,Alibag 402201",
"notes": "testing"
},
"LeadDestination": [{
"from_date": "2016-11-09",
"to_date": "2016-11-10",
"country_id": "IN",
"city_id": "67457",
"notes": "",
"is_hotel": "1",
"is_sight": "1",
"is_transfer": "1",
"lead_id": "77"
}]
}]

Answer

You need array_merge instead of array_push:

<?php

$state_current_arr = '{ "id": "77", "agent_id": "30524", "raised_by": "C", "from_date": "2016-11-09", "to_date": "2016-11-10", "LeadConsultant": { "user_id": "3045", "lead_id": "77" }, "LeadDestination": [ { "from_date": "2016-11-09", "to_date": "2016-11-10", "country_id": "IN", "city_id": "67457", "notes": ""}]}';

$jsonData = array();

    $jsonData['mainQuot'] = 'test';
    $jsonData['quotation_hotel'] = 'test';

$tempArray = json_decode($state_current_arr,true);
$tempArray = array_merge($tempArray, $jsonData);
$jsonData_merged = json_encode($tempArray);

echo $jsonData_merged;