PHP Сравнение двух многомерных массивов по ключу и значению

Я занимаюсь изучением 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; }