3

私は約1000個のキーを持つ2つの大きなアレイを持っており、毎日成長しています。array1[]['uid']この配列を値ごとに1つにマージするにはどうすればよいですか?array2[][7]

正しい値は、たとえばarray1[45]['uid']andarray2[155][7]または array1[444]['uid']andarray2[666][7]などである可能性があることに注意してください。

array1
    0 => 
    array
      'login' => string '104' (length=5)
      'uid' => string '1363861889.100' (length=14)
    1 => 
    array
      'login' => string '131' (length=5)
      'uid' => string '1363863722.126' (length=14)
    etc...

ともう1つ

array2
     0 => 
    array
      0 => string '2013' (length=4)
      1 => string '03' (length=2)
      2 => string '25' (length=2)
      3 => string '15' (length=2)
      4 => string '39' (length=2)
      5 => string '49' (length=2)
      6 => string 'anonymous' (length=9)
      7 => string '1363863722.126' (length=19)
    1 => 
    array
      0 => string '2013' (length=4)
      1 => string '03' (length=2)
      2 => string '25' (length=2)
      3 => string '12' (length=2)
      4 => string '39' (length=2)
      5 => string '42' (length=2)
      6 => string 'anonymous' (length=9)
      7 => string '1363861889.100' (length=19)
    etc...

array1[0]['uid']array2[1][7] ここで私が取得したいのと同じ値を持っています:

 array
      0 => string '2013' (length=4)
      1 => string '03' (length=2)
      2 => string '25' (length=2)
      3 => string '12' (length=2)
      4 => string '39' (length=2)
      5 => string '42' (length=2)
      6 => string 'anonymous' (length=9)
      7 => string '1363861889.100' (length=19)
      'login' => string '104' (length=5)
      'uid' => string '1363861889.100' (length=14)
4

2 に答える 2

2
$array1_inverted = array();
foreach ($array1 as $subarray) {
  $array1_inverted[$subarray['uid']] = $subarray;
}
foreach ($array2 as &$element) {
  $array1_element = $array1_inverted[$element[7]];
  $element['uid'] = $array1_element['uid'];
  $element['login'] = $array1_element['login'];
}

デモ

于 2013-03-26T17:14:27.593 に答える
1
foreach($array1 as $value)
{
  foreach($array2 as $value1)
  {
    if($value['uid'] == $value1[7])
  {
     $value1['uid'] = $value['uid'];
     $value1['login'] = $value['login'];
  }
 }
}

その間に試してみてください私はいくつかのより良い代替案を考えます

于 2013-03-26T17:13:54.033 に答える