array_diff, безусловно, является очевидным выбором, но технически не является противоположностью массива interesect. Возьмите этот пример:
$arr1 = array('rabbit','cat','dog');
$arr2 = array('cat','dog','bird');
print_r( array_diff($arr1, $arr2) );
То, что вы хотите - это результат с «кроликом» и «птицей», но вы получите только кролика, потому что он ищет то, что находится в первом массиве, а не во втором (и не наоборот). чтобы действительно получить желаемый результат, вы должны сделать что-то вроде этого:
$arr1 = array('rabbit','cat','dog');
$arr2 = array('cat','dog','bird');
$diff1 = array_diff($arr1, $arr2);
$diff2 = array_diff($arr2, $arr1);
print_r( array_merge($diff1, $diff2) );
Примечание. Этот метод будет работать только с массивами с цифровыми клавишами.