2016-06-17 13 views
-1

共通のキーを持つ要素を持つ2つの配列の間のキー値に基づいて "マージ"するのに最適なソリューションを探しています。同じキーに配列要素をマージする

入力:

Array1 => [{"id" : "1", "LastName":"Jackson"}, {"id" : "2", "LastName":"Bross"} ] 

Array2 =>[{"id" : "1", "FirstName":"Mickael"},{"id" : "2", "FirstName":"Mario"} ] 

出力リレー:

[{"id" : "1", "FirstName":"Mickael", "LastName":"Jackson"}, 
{"id" : "2", "FirstName":"Mario", "LastName":"Bross"} ] 

ご協力いただきありがとうございます。

+1

の可能性のある重複[PHP配列が同じキー上の2つの配列をマージ](http://stackoverflow.com/questions/14842272/php-array-merge-two-arrays-on-same-key) –

+2

これまで行ったことのあるコードを含めてください – SML

+0

David Jawphanのようにマージするキーを使って最終的に何かを使用しました。どうもありがとう。 – jup31

答えて

1

私たちが使用できるように、私は内部のデータが対象だと思いますforeachとidが一致する場合は、オブジェクトデータをobject->key = valueの形式で割り当てます。

foreach ($array1 as $key => $value) { 
    foreach ($array2 as $k => $v) { 
     if($value->id == $v->id){ 
      $array1[$key]->FirstName = $v->FirstName; 
     } 
    } 
} 
var_dump($array1); 

//出力

array (size=2) 
    0 => 
    object(stdClass)[1] 
     public 'id' => string '1' (length=1) 
     public 'LastName' => string 'Jackson' (length=7) 
     public 'FirstName' => string 'Mickael' (length=7) 
    1 => 
    object(stdClass)[2] 
     public 'id' => string '2' (length=1) 
     public 'LastName' => string 'Bross' (length=5) 
     public 'FirstName' => string 'Mario' (length=5) 
0

あなたは姓と名の配列の要素数が同じでなければなりませんTHID行うには注意:

$lastNames = array(
    array(
     'id' => 1, 
     'lastName' => 'Kent' 
    ), 
    array(
     'id' => 2, 
     'lastName' => 'Snow' 
    ), 
    array(
     'id' => 3, 
     'lastName' => 'Parker' 
    ), 
); 
$firstNames = array(
    array(
     'id' => 1, 
     'firstName' => 'Clark' 
    ), 
    array(
     'id' => 2, 
     'firstName' => 'John' 
    ), 
    array(
     'id' => 3, 
     'firstName' => 'Peter' 
    ), 
); 

$people = array(); 
foreach($firstNames as $key => $data) { 
    $people[] = array(
     'id' => $data['id'], 
     'FirstName' => $data['firstName'], 
     'LastName' => $lastNames[$key]['lastName'] 
    ); 
} 

print_r($people); 

出力:

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [FirstName] => Clark 
      [LastName] => Kent 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [FirstName] => John 
      [LastName] => Snow 
     ) 

    [2] => Array 
     (
      [id] => 3 
      [FirstName] => Peter 
      [LastName] => Parker 
     ) 

) 
関連する問題