2017-05-02 11 views
0

ここをクリックしてください。私は2つの同様のオブジェクトを持っており、それらをlaravelの1つのオブジェクトにマージしたい。どうしたの?ここでlaravelの2つの同様のオブジェクトをマージするには

は私のオブジェクトは、私がvenue_idとstudent_noが一緒にマージされますしたいこの

{"course_code":"UGRC110","venue_id":[22,25],"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":[400,700]} 

のようなものをマージし、取得したい

{"course_code":"UGRC110","venue_id":22,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":400} 

{"course_code":"UGRC110","venue_id":25,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":700} 

です。 。任意のヘルプは 非常に高く評価されます。ありがとう

+0

あなたは何を試してみましたか?これは、json_decodeのように、 'array_merge($ json1 ['venue_id']、$ json2 ['venue_id'])'と 'array_merge($ json1 ['student_no']、$ json2 ['student_no']) 。 –

答えて

1

これがあなたを助けてくれることを願っています。ここでは単純なforeachを使用して、これらの2つをマージしますjson

Try this code snippet here

<?php 

$json1 = '{"course_code":"UGRC110","venue_id":22,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":400}'; 
$json2 = '{"course_code":"UGRC110","venue_id":25,"exam_date":"May 6, 2017","exam_time":"3:30 pm","student_no":700}'; 

json_merge($json1, $json2); 
function json_merge($json1, $json2) 
{ 
    $array1 = json_decode($json1, true); 
    $array2 = json_decode($json2, true); 
    $result = array(); 
    foreach ($array1 as $key => $value) 
    { 
     if ($array1[$key] == $array2[$key]) 
     { 
      $result[$key] = $array2[$key]; 
     } else 
     { 
      $result[$key][] = $array1[$key]; 
      $result[$key][] = $array2[$key]; 
     } 
    } 
    return json_encode($result, JSON_PRETTY_PRINT); 
} 

は出力:

{ 
    "course_code": "UGRC110", 
    "venue_id": [ 
     22, 
     25 
    ], 
    "exam_date": "May 6, 2017", 
    "exam_time": "3:30 pm", 
    "student_no": [ 
     400, 
     700 
    ] 
} 
+0

うわー..すばらしい.. @ Sahilありがとう...とにかく、私はオブジェクトをループすることなく、同様の機能を実行できるlaravelのコレクションメソッドがありません。私は非常に効率的なメソッドが私のデータベースから数千のレコードに適用されますので – Ernesto

+0

@エリートlaravelはこれを行うメソッドを持っていない、あなたは複数回使用することができますPHP関数に自分のコードを変更することができます。 –

+0

@エリートあなたはこのようにすることができます...私はあなたを助ける私のポストの希望を編集しています.... –

関連する問題