0

PHP で、2 つの異なる列名 (id<->lid) で 2 つの JSON を結合することは可能ですか? JSON は次のようになります。


[{"id":504,"displayname":"Jack","idname":"Work"},{"id":505,"displayname":"Peter","idname":"Home"}]
[{"id":12,"role_id":1800,"prv":2,"lid":504},{"id":20,"role_id":1800,"prv":2,"lid":505}]

出力は次のようになります。


[{"id":504,"displayname":"Jack","idname":"Work","id":12,"role_id":1800,"prv":2,"lid":504},{"id":505,"displayname":"Peter","idname":"Home","id":20,"role_id":1800,"prv":2,"lid":505}]

助けてくれてありがとう。

4

1 に答える 1

0

ここでの問題は、JSON に同じ名前のキーがあることです。理論的には、この答えはあなたが探しているものです:

ただし、カスタム マージ アルゴリズムが必要な場合は、次のように動作します。

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

$mergedJson = array();

foreach($json1 as $values)
{
    foreach($json2 as $values2)
    {
        if($values['id'] == $values2['lid'])
        {
            $mergedJson[] = array_merge_recursive($values, $values2);
            break;
        }
    }
}

$finalJsonString = json_encode($mergedJson);

これは非常に基本的なことです。配列マージ再帰関数を使用していますが、使用する必要はありません。配列を手動でマージするには、もう少しコードが必要になる可能性があります。しかし、これは良い出発点になるはずです。

于 2013-03-13T23:44:57.960 に答える