我正忙于学习PHP,正在寻找一种方法,通过键和值来比较两个关联数组,然后找到两者的差异,即
如果我有一个关联数组:
array (size=2)
'x15z' => int '12' (length=2)
'x16z' => int '3' (length=1)
另一个包含以下内容:
array (size=1)
'x15z' => int 1
我正在努力寻找两个关联数组之间的差异,我目前正在尝试使用array_diff_assoc($array1,$array2),这在一个元素与另一个元素缺失的情况下有效,但在上述实例中,差异为
array (size=2)
'x15z' => int '12' (length=2)
'x16z' => int '3' (length=1)
与我正在寻找的相反:
array (size=2)
'x15z' => int '11' (length=2)
'x16z' => int '3' (length=1)
由此,还计算出值差。
有没有任何逻辑方法可以根据键和值来计算两个关联数组的差?谢谢
function calculateDifference($array1, $array2){
$difference = array();
foreach($array1 as $key => $value){
if(isset($array2[$key])){
$difference[$key] = abs($array1[$key] - $array2[$key]);
}else{
$difference[$key] = $value;
}
}
foreach($array2 as $key => $value){
if(isset($array1[$key])){
$difference[$key] = abs($array1[$key] - $array2[$key]);
}else{
$difference[$key] = $value;
}
}
return $difference;
}