> 백엔드 개발 > PHP 문제 > PHP의 두 배열에서 서로 다른 값을 찾는 방법

PHP의 두 배열에서 서로 다른 값을 찾는 방법

WBOY
풀어 주다: 2023-05-23 11:57:37
원래의
1043명이 탐색했습니다.

PHP는 널리 사용되는 프로그래밍 언어로서 배열을 처리할 때 두 배열 사이의 서로 다른 값을 비교해야 하는 경우가 많습니다. 이 기사에서는 두 배열의 서로 다른 값을 알아내는 몇 가지 PHP 방법을 소개합니다.

방법 1: array_diff() 함수 사용
array_diff() 함수는 두 배열 사이의 서로 다른 값을 비교할 때 매우 유용합니다.

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "date");
$array2 = array("a" => "apple", "b" => "banana", "g" => "grape");

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

print_r($result);
?>
로그인 후 복사

위 코드에서는 $array1과 $라는 두 개의 배열을 정의합니다. array2, $array1에서 $array2와 다른 값을 찾습니다. $array1에는 존재하지만 $array2에는 없는 값을 반환합니다. 출력 결과는 다음과 같습니다.

Array ( [c] => cherry [d] => date )
로그인 후 복사

방법 2: array_udiff() 함수 사용
비교해야 할 배열 요소가 단순한 값이 아니라 고급 비교가 필요한 경우 array_udiff() 함수를 사용해야 합니다. 이를 통해 비교를 위해 사용자 정의 콜백 함수를 사용할 수 있습니다. 사용법은 다음과 같습니다.

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("apple", "banana", "cherry", "date");
$array2 = array("apple", "banana", "grape");

$result = array_udiff($array1, $array2, "compare");

print_r($result);
?>
로그인 후 복사

위 코드에서는 두 요소 간의 크기 관계를 비교하고 원래 배열 요소를 반환하는 데 사용되는 비교 콜백 함수인 Compare()를 정의합니다. 다음으로, array_udiff() 함수를 사용하여 두 개의 배열과 첫 번째 배열에 존재하는 요소와 두 번째 배열에 존재하지 않는 요소를 반환하는 사용자 정의 콜백 함수를 전달합니다. 출력 결과는 다음과 같습니다.

Array ( [2] => cherry [3] => date )
로그인 후 복사

방법 3: array_diff_key() 함수 사용
값이 아닌 두 배열의 키만 비교해야 하는 경우 array_diff_key() 함수를 사용할 수 있습니다. 두 배열 모두에서 키가 일치하지 않는 값을 반환합니다. 사용법은 다음과 같습니다.

<?php
$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_diff_key($array1, $array2);

print_r($result);
?>
로그인 후 복사

위 코드에서는 두 배열의 키를 비교하여 $array2와 다른 $array1의 키 값을 반환합니다. 출력 결과는 다음과 같습니다.

Array ( [c] => cherry )
로그인 후 복사
로그인 후 복사

방법 4: array_udiff_assoc() 함수 사용
두 다차원 배열의 서로 다른 값을 비교해야 하는 경우 array_udiff_assoc() 함수를 사용해야 합니다. 다차원 배열의 비교를 지원한다는 점을 제외하고 array_udiff() 함수. 사용법은 다음과 같습니다.

<?php
function compare($x, $y) {
   if ($x === $y) {
      return 0;
   }
   return ($x > $y) ? 1 : -1;
}

$array1 = array("a" => "apple", "b" => "banana", "c" => "cherry");
$array2 = array("a" => "apple", "b" => "banana", "d" => "date");

$result = array_udiff_assoc($array1, $array2, "compare");

print_r($result);
?>
로그인 후 복사

위 코드에서는 다차원 배열 요소를 비교하기 위한 콜백 함수인 Compare()를 정의하며 사용법은 방법 2와 유사합니다. 두 개의 다차원 배열을 전달하고 콜백 함수를 사용하여 이를 비교합니다. 결과는 $array1에는 있지만 $array2에는 없는 요소를 반환합니다. 출력 결과는 다음과 같습니다.

Array ( [c] => cherry )
로그인 후 복사
로그인 후 복사

Conclusion

PHP는 두 배열 간의 서로 다른 값을 비교할 수 있는 매우 풍부한 기능을 제공합니다. 일반 배열끼리 서로 다른 값을 비교하려면 array_diff()나 array_udiff() 함수를 사용하고, 키 값이 다른 배열끼리 서로 다른 값을 비교하려면 array_diff_key() 함수를 사용하고, 비교하려면 array_udiff_assoc() 함수를 사용하면 됩니다. 다양한 값의 다차원 배열. 이러한 기능의 사용법을 익히면 PHP 개발 중에 데이터를 처리하는 데 큰 도움이 됩니다.

위 내용은 PHP의 두 배열에서 서로 다른 값을 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿