我正忙着学习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)
由此也计算了价值差异。
是否有任何逻辑方法可以根据键和值来计算两个关联数组的差异?谢谢!
答案 0 :(得分:3)
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;
}