Напротив array_intersect?

Есть ли встроенная функция для получения всех элементов массива 1, которых нет в массиве 2?
Я знаю, как это сделать программно, только интересно, есть ли встроенная функция, которая делает то же самое. Поэтому, пожалуйста, никаких примеров кода.

Solutions Collecting From Web of "Напротив array_intersect?"

Это похоже на работу для array_diff .

Возвращает массив, содержащий все записи из массива1, которые не присутствуют ни в одном из других массивов.

array_diff определенно является очевидным выбором, но он не является технически противоположным интересам массива. Возьмем следующий пример:

 $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) ); 

Примечание. Этот метод будет работать только с массивами с цифровыми клавишами.

 $diff = array_diff($array1, $array2); 

array_diff ()

Я нашел этот docstore.mik.ua/orelly/webprog/pcook/ch04_24.htm весьма полезным.

Возможно, вам понадобится обратный diff, изменив порядок массивов в стандартном diff.