>  기사  >  백엔드 개발  >  PHP는 배열을 비교하여 동일한지 확인합니다.

PHP는 배열을 비교하여 동일한지 확인합니다.

王林
王林원래의
2023-05-19 20:57:38454검색

PHP에서 배열이 동일한지 확인하기 위해 비교하는 것은 매우 일반적인 작업입니다. 일반적으로 두 배열을 비교하여 동일한지 확인하려면 해당 요소의 순서가 다르더라도 정렬한 다음 하나씩 비교해야 합니다. 하기가 어렵지는 않지만 시간이 좀 걸립니다.

PHP에는 배열을 비교하여 동일한지 확인하는 간단한 방법이 많이 있습니다. 아래에서는 일반적으로 사용되는 몇 가지 방법을 소개합니다.

  1. array_diff()

array_diff() 함수는 두 배열을 비교하고 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소를 반환합니다. 두 배열이 정확히 동일한 경우 빈 배열이 반환됩니다.

예제는 다음과 같습니다.

$array1 = array('a', 'b', 'c');
$array2 = array('a', 'b', 'd');

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

if (empty($res)) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}

위 코드는 "두 배열이 동일하지 않습니다"를 출력합니다. 이는 $array1 배열의 'c' 요소가 $array2에 존재하지 않기 때문입니다.

  1. array_diff_assoc()

array_diff_assoc() 함수는 두 배열을 비교하고 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소를 반환하고 이러한 요소의 키도 비교합니다.

예제는 다음과 같습니다.

$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry');

$res = array_diff_assoc($array1, $array2);

if (empty($res)) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}

위 코드는 "두 배열이 동일하지 않습니다"를 출력합니다. 이는 $array1 배열의 'banana' 요소가 $array2에 존재하지 않고 'b' 키도 다르기 때문입니다.

  1. array_diff_key()

array_diff_key() 함수는 두 배열을 비교하여 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소의 키를 반환합니다. array_diff()와의 차이점은 array_diff_key()는 배열 키만 비교하고 키에 해당하는 값은 비교하지 않는다는 점입니다.

예제는 다음과 같습니다.

$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('a' => 'apple', 'b' => 'orange', 'd' => 'mango');

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

if (empty($res)) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}

위 코드는 "두 배열이 동일하지 않습니다"를 출력합니다. 이는 $array1 배열의 'c' 키가 $array2에 존재하지 않고, 'd' 키도 다르기 때문입니다.

  1. array_uintersect_assoc()

array_uintersect_assoc() 함수는 두 배열을 비교하고 두 배열에 존재하는 요소를 반환하는 동시에 이러한 요소의 키도 비교합니다. array_diff_assoc()에 해당합니다.

예제는 다음과 같습니다.

$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'cherry');
$array2 = array('a' => 'apple', 'b' => 'orange', 'c' => 'cherry');

function compare($a, $b) {
    if ($a === $b) {
        return 0;
    }

    return ($a < $b) ? -1 : 1;
}

$res = array_uintersect_assoc($array1, $array2, 'compare');

if (count($res) === count($array1) && count($res) === count($array2)) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}

위 코드는 "두 배열이 동일하지 않습니다"를 출력합니다. 이는 $array2 배열의 'b' 키가 다른 값에 해당하기 때문입니다.

위 함수는 모두 PHP 내장 함수이므로 쉽게 비교할 수 있습니다. 그러나 배열을 비교할 때 기본적으로 요소 유형은 비교되지 않는다는 점에 유의해야 합니다. 요소 유형을 비교해야 하는 경우 array_diff_uassoc()과 같은 사용자 정의 콜백이 있는 함수를 사용하고 사용자 정의 비교 함수에서 유형 비교 방법을 지정할 수 있습니다.

PHP에서 배열이 동일한지 비교하는 것은 복잡한 문제가 아닙니다. 다양한 필요에 따라 다양한 방법을 선택할 수 있습니다.

위 내용은 PHP는 배열을 비교하여 동일한지 확인합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.