programing

array_intergect의 반대?

newstyles 2023. 11. 5. 11:03

array_intergect의 반대?

어레이 2에 없는 어레이 1의 모든 멤버를 얻을 수 있는 기능이 내장되어 있습니까?
프로그램적으로 할 줄 아는데, 같은 기능을 하는 내장 기능이 있는지 궁금할 뿐입니다.그러니 제발, 코드 예시는 없습니다.

그건 일처럼 들리네요.

다른 어레이에 없는 array1의 모든 항목을 포함하는 어레이를 반환합니다.

array_diff는 분명히 명백한 선택이지만 array interect와는 엄밀히 반대는 아닙니다.예를 들어 다음과 같습니다.

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

배열_diff

이 질문에 대해 자세히 설명하자면, @Jon과 @Dallas Caley의 답변은 모두 어레이의 도메인에 따라 다릅니다.

비교하는 것과 비교하는 배열이 결과의 전체 도메인이라면 @Jon 답변과 같이 array_diff로 충분합니다.

비교 대상이 결과의 전체 도메인이 아닌 경우 @Dallas Caley 답변과 같이 double array_diff로 진행해야 합니다.

언급URL : https://stackoverflow.com/questions/5582242/opposite-of-array-intersect