PHP通过键和值比较两个多维数组

PHP通过键和值比较两个多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我忙于学习PHP,一直在寻找一种方法,通过键和值来比较两个关联数组,然后找出两者的差异,即 如果我有一个关联数组: array (size=2) 'x15z' => int '12' (length=2) 'x16z' => int '3' (length=1) 另一个具有以下内容: array (size=1) 'x15z' => int 1 我正在尝试找出两个关联数组之间的差异,目前我正在尝试使用array_diff_assoc($array1,$array

我忙于学习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)
由此也计算出值差


是否有任何逻辑方法可以根据两个关联数组的键和值计算它们之间的差异?谢谢

您的实际输出(
差异为{code}
)看起来与您的预期输出(
为{code}
)相同??我仍然不明白,我明白您的意思,但您需要定义规则。如果第二个数组是:
array(size=1)'x15z'=>int11
那么如果它是
array(size=1)'x15z'=>int13
呢<代码>1和1或者可能
1和-1
?如果第二个数组包含字符串或对象而不是integar@Tim他想计算不匹配的数组元素的整数值之间的差值。然而,他还没有定义如何计算这种差异。我想找出两个数组在元素和键值方面的差异。i、 e.因此,如果x15z或x16z中的任何一个不在结果差数组中,但在这种情况下,它们都存在,我希望比较这两个值并得到它们的差,即数组1中的x15z为1,数组12中的x15z为11。这有意义吗?让我知道,否则我会再次更新问题!有没有一种方法可以使用PHP数组方法实现这一点?只是出于兴趣?我不知道,但如果有,将在此处某处记录:
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;
}