PHP按相同值合并数组

PHP按相同值合并数组,php,arrays,array-merge,Php,Arrays,Array Merge,我有两个大阵列,大约有1000个键,而且每天都在增长。 如何在array1[]['uid']和array2[][7] 请注意,正确的值可以是例如array1[45]['uid']和array2[155][7]或 array1[444][uid']和array2[666][7]等 array1 0 => array 'login' => string '104' (length=5) 'uid' => string '1363861889

我有两个大阵列,大约有1000个键,而且每天都在增长。 如何在
array1[]['uid']
array2[][7]

请注意,正确的值可以是例如
array1[45]['uid']
array2[155][7]
array1[444][uid']
array2[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...
另一个呢

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)
同时试试看我会想出更好的选择

$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'];
}

这是什么?请参阅我对非Nsquared实现的回答。它与aspected不一样。添加了uid和login键,但没有固定值--
$array1[$element[7]]
应该是
$array1\u倒置[$element[7]]
。太好了!:-)你有很好的编码技巧!我删除了我的答案,因为我看到你的答案好多了。测试后,
$array1_元素
$array1
的索引值。它如何返回
$element['uid']=$array1_element['uid']中的任何值。我认为应该是
$element['uid']=$array1[$array1_element]['uid']请提出建议。@SumitRaghav如果你是对的,它不能像我写的那样工作。我更改了第一个循环,以便
$array1\u inversed
保存子数组而不是索引。我已经测试过了,它是有效的。
$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'];
}