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