배열 2에 존재하지 않는 배열 1의 모든 구성원을 가져 오는 기본 제공 함수가 있습니까?
필자는 프로그래밍 방식으로이를 수행하는 방법을 알고 있으며, 동일한 기능을하는 내장 함수가 있는지 궁금해하고 있습니다. 코드 예제가 없으니 제발.array_intersect 맞은 편?
28
A
답변
46
array_diff
의 경우와 비슷합니다.
다른 배열 중 어느 없는 배열 1의 모든 항목을 포함 배열을 반환.
4
$diff = array_diff($array1, $array2);
28
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));
참고 :이 방법은 숫자 키 배열에서 작동합니다.
+1
고마워요. 제가 찾고있는 것이고, 이것은 해결책으로서의 마크가되어야합니다. – artSir
0
나는 이것을 발견했다. docstore.mik.ua/orelly/webprog/pcook/ch04_24.htm 매우 유용하다.
표준 diff에서 배열의 순서를 뒤집어서 역방향 diff를 원할 수 있습니다.
비슷한 동작을하는 기능을 찾으려면 http : // www에서이 질문과 마찬가지로 '관련 항목'섹션의 해당 기능에 대한 매뉴얼 페이지에서 찾을 수 있습니다. .php.net/manual/ko/function.array-intersect.php –