2017-06-12 17 views
-1

2つの配列があります。最初の配列のキーと別の配列を一致させたい場合は、両方のキーの値が一致すれば配列1に2番目の配列の値を加えます。配列の値を一致させ、値がPHPで一致する場合にマージする

アレイ1

[{"currency":1,"amount":23},{"currency":1,"amount":30},{"currency":2,"amount":40},] 

アレイ2

[{"currency_id": 1,"currency_symbol":$},{"currency_id":2,"currency_symbol":€}] 

所望の出力である:

[{"currency":$,"amount":23},{"currency":$,"amount":30},{"currency":€,"amount":40}] 

私が使用しているコードは次のとおりです。

foreach($a1 as $key) { 
      foreach($a2 as $cKey){ 
       if($a1['currency']==$a2['currency_id']){ 
        $a1['currency_symbol'] = $a2['currency_symbol']; 
        echo $a1['currency_symbol']; 
       } 
      } 
     } 
+0

あなたの問題は何ですか? –

+0

希望の出力を達成するためにこれまでに何を実装しましたか? –

+0

私はforeachループで試してみましたが、他の配列とキー値を一致させることはわかりません。 – mohit

答えて

1
foreach($arr1 as $k=>$key) { 
    foreach($arr2 as $cKey){ 
     if($key['currency']==$cKey['currency_id']){ 
      $arr3[$k]['currency'] = $cKey['currency_symbol']; 
      $arr3[$k]['amount'] = $key['amount']; 
     } 
    } 
} 
var_export($arr3); 

あなたが唯一の変数を割り当てて、ループの外に印刷する必要があります。

関連する問題