我试图找到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'
));
但是我遇到了如何修改递归函数以实现此目的的问题。任何帮助表示赞赏!谢谢!
答案 0 :(得分:0)
您需要遍历第一个数组并将值与第二个数组进行比较。然后遵循你的条件。如果condition为true,则将此唯一值推送到第三个数组。第三个数组中的值现在是第一个和第二个数组之间的差异。
$diff = [];
foreach ($array1 as $value1) {
foreach ($array2 as $value2) {
if ($value1['Age'] !== $value2['Age_In_Days']) {
array_push($diff, $value1);
}
}
}