>  기사  >  백엔드 개발  >  PHP에서 배열을 비교할 때 일어나는 일

PHP에서 배열을 비교할 때 일어나는 일

PHPz
PHPz원래의
2023-04-19 09:22:26678검색

Array는 PHP에서 매우 중요한 데이터 유형이며 데이터 저장, 매개변수 전달 등과 같은 다양한 시나리오에서 널리 사용됩니다. 대부분의 경우 두 개 이상의 배열을 비교하여 동일한지 확인해야 합니다. 그렇다면 PHP에서 배열을 비교하면 어떻게 될까요?

PHP에는 배열을 비교하는 두 가지 연산자, 즉 "=="와 "==="가 있습니다. 두 연산자의 비교 결과는 서로 다릅니다. 먼저 "==" 연산자의 비교 규칙을 살펴보겠습니다.

"==" 연산자를 사용하여 두 배열을 비교할 때 배열의 각 요소를 하나씩 비교합니다. 구체적으로는 먼저 두 배열의 요소 수가 같은지 비교합니다. 숫자가 동일하면 각 요소를 하나씩 비교하고, 그렇지 않으면 false가 직접 반환됩니다. 요소를 비교하는 동안 배열의 한 요소가 다른 배열의 요소와 같을 경우 두 요소는 동일한 것으로 간주됩니다. 여기서 언급된 동등성은 두 요소가 동일한 키 값과 값을 가짐을 의미하며, 키 값과 값이 동일한 경우에만 동일합니다.

다음은 "==" 연산자를 사용하여 두 배열을 비교하는 과정을 보여주는 예입니다.

$arr1 = array("apple", "banana", "orange");
$arr2 = array(" 바나나 ", "orange", "apple");

if ($arr1 == $arr2) {

echo "Two arrays are equal.";

} else {

echo "Two arrays are not equal.";

}

출력 결과는 "두 개의 배열이 동일하지 않습니다."입니다. 이는 $arr1 배열과 $arr2 배열이 동일한 요소를 포함하지만 순서가 다르지만 "==" 연산자의 비교 규칙에 따라 동일하지 않기 때문입니다.

다음으로 “===” 연산자의 비교 규칙을 살펴보겠습니다.

"===" 연산자를 사용하여 두 배열을 비교할 때 먼저 두 배열의 참조가 동일한지, 즉 동일한 배열을 가리키는지 여부를 비교합니다. 동일한 배열이 아닌 경우 false를 직접 반환하고, 그렇지 않으면 "==" 연산자 규칙에 따라 각 요소가 동일한지 비교합니다.

다음은 "===" 연산자의 사용법을 보여주는 예입니다.

$arr1 = array("사과", "바나나", "오렌지");
$arr2 = array("사과", "바나나", "오렌지");
$arr3 = &$arr1;

if ($arr1 === $arr2) {

echo "Two arrays are equal.";

} else {

echo "Two arrays are not equal.";

}

if ($arr1 === $arr3) {

echo "Two arrays are the same.";

} else {

echo "Two arrays are not the same.";

}

출력 결과는 " 두 개의 배열이 동일하지 않습니다." 및 "두 개의 배열이 동일합니다." 이는 $arr1과 $arr2가 동일한 요소를 포함하지만 동일한 배열이 아니기 때문입니다. $arr1과 $arr3은 동일한 배열이고 동일한 메모리 공간을 가리키기 때문입니다.

실제 프로그래밍에서는 실제 상황에 따라 "==" 또는 "===" 연산자를 사용하도록 선택해야 합니다. 배열의 요소 값, 키 이름 및 순서를 비교해야 하는 경우 참조, 요소 값, 키 이름 및 순서를 포함하여 배열이 정확히 동일한지 비교해야 하는 경우 "==" 연산자를 사용해야 합니다. , "===" 연산자 기호를 사용해야 합니다.

마지막으로, 배열을 비교할 때 배열에 객체가 포함되어 있으면 비교 결과는 이 객체에 의해 결정된다는 점에 유의해야 합니다. PHP의 개체 비교는 참조를 기반으로 하기 때문에 개체가 두 배열에서 서로 다른 참조를 갖는 경우 두 배열은 동일하지 않은 것으로 간주됩니다.

위 내용은 PHP에서 배열을 비교할 때 일어나는 일의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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