多维数组 - 按奇数键匹配

时间:2015-12-10 18:22:32

标签: php arrays multidimensional-array

我试图找到2个多维数组的区别。我试图通过修改的递归数组差异函数来解决这个问题。

如果我有以下阵列设置:

$array1 = array(
  0 => array(
      'Age' => '1004',
      'Name' => 'Jack'
  ),
1 => array (
    'Age' => '1005',
    'Name' => 'John'
)
);

$array2 = array(
0 => array(
    'Age_In_Days' => '1004',
    'Name' => 'Jack'
),
1=> array(
'Transaction_Reference' => '1005',
'Name' => 'Jack'
)
);

我正在尝试匹配数组,但键不一样。我想返回两个多维数组之间的区别

 $array1[$i]['Age'] == $array2[$i]['Age_In_Days'];

如果上述条件成立,我想保留原始数组结构,因此我要查找的输出是:

 $diff = array (1 => array (
    'Age' => '1005',
    'Name' => 'John'
));

但是我遇到了如何修改递归函数以实现此目的的问题。任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:0)

您需要遍历第一个数组并将值与第二个数组进行比较。然后遵循你的条件。如果condition为true,则将此唯一值推送到第三个数组。第三个数组中的值现在是第一个和第二个数组之间的差异。

$diff = [];
foreach ($array1 as $value1) {
    foreach ($array2 as $value2) {
        if ($value1['Age'] !== $value2['Age_In_Days']) {
            array_push($diff, $value1);
        }
    }
}