2014-09-18 3 views
-2

두 개의 JSON이있는 경우 [ { "a" : "b" , "c" : "d" } ,{ "a" : "e" , "c" : "f"} ]{ "a" : "g" , "c" : "h"}을 병합하여 PHP에서 다음 배열을 얻을 수 있습니까?어떻게 PHP에서 두 json을 병합 할 수 있습니까?

[ { "a" : "b" , "c" : "d" } ,{ "a" : "e" , "c" : "f"} ,{ "a" : "g" , "c" : "h"} ] 
+0

물론을; 배열로 변환하고 새 값을 추가 한 다음 JSON으로 다시 인코딩합니다. – Qix

+1

물론입니다. [당신은 무엇을 했습니까?] (http://mattgemmell.com/what-have-you-tried/) – Ohgodwhy

+0

확실히 :'$ value1 [] = $ value2;'(이미 JSON을 파싱했다고 가정). –

답변

-1

당신은 JSON 객체를 디코딩하는 최초의 필요성 :

$result = array_merge($json1,$json2); 

및 JSON 다시 인코딩 :

$json1 = json_decode($data1, true); 
$json2 = json_decode($data2, true); 

을 다음 배열을 병합 같은

$encodedResult = json_encode($result); 
+0

응? 아닙니다. JSON은 PHP에서 병합 할 수있는 객체가 아닙니다. JSON은 직렬화 형식입니다. – Qix

+0

JSON을 배열로 디코딩했다고 가정합니다 ... – qbit

+0

그들은 결코 그런 말을하지 않았습니다. 그들은 JSON이 두 개 있다고 말했다. – Qix

0

뭔가 json_encode()가 작동해야합니다. 공식 PHP 문서

1

에 공식 PHP 문서 json_decode에 자체 array_merge이 시도 :

<?php 
    $json1 = '[ { "a" : "b" , "c" : "d" }, { "a" : "e" , "c" : "f"} ]'; 
    $json2 = '{ "a" : "g" , "c" : "h"}'; 

    $json1 = json_decode($json1, true); 
    $json2 = json_decode($json2, true); 

    $final_array = array_merge($json1, $json2); 

    // Finally encode the result back to JSON. 
    $final_json = json_encode($final_array); 
?> 
+0

병합 된 배열을 OP 질문과 같이 인코딩하는 것을 잊어 버렸지 만, +1. – Qix

관련 문제