>백엔드 개발 >PHP 튜토리얼 >PHP의 array_diff_assoc() 함수에 대한 자세한 설명

PHP의 array_diff_assoc() 함수에 대한 자세한 설명

PHP中文网
PHP中文网원래의
2017-10-27 09:43:264186검색

두 배열의 키 이름과 키 값을 비교하고 그 차이를 반환합니다.

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","b"=>"green","c"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>

정의 및 사용법

array_diff_assoc() 함수는 두 개(또는 그 이상)의 키 이름과 키 값을 비교하는 데 사용됩니다. ) 배열, 그리고 차이 세트를 반환합니다.

이 함수는 두 개 이상의 배열의 키 이름과 키 값을 비교하고 비교된 배열(array1)의 모든 항목을 포함하지만 다른 매개변수 배열(array2)에는 포함되지 않는 차이 배열을 반환합니다. 또는 array3 등).

Syntax

array_diff_assoc(array1,array2,array3...);

매개변수 구문 다른 배열과 비교할 첫 번째 배열입니다.

array2 필수입니다. 첫 번째 배열과 비교할 배열입니다.

array3,... 선택 사항입니다. 첫 번째 배열과 비교할 추가 배열입니다.

비교된 배열(array1)의 모든 키 이름과 키 값을 포함하지만 다른 매개변수 배열(array2 또는 array3 등)에는 포함되지 않는 차이 배열을 반환합니다.

두 배열의 키 이름과 키 값을 비교하고 차이점 집합 반환:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff_assoc($a1,$a2);
print_r($result);
?>

세 배열의 키 이름과 키 값을 비교하고 차이 집합 반환:

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("a"=>"red","f"=>"green","g"=>"blue");
$a3=array("h"=>"red","b"=>"green","g"=>"blue");
$result=array_diff_assoc($a1,$a2,$a3);
print_r($result);
?>

One: array_diff 사용 and array_diff_assoc Prelude

몰에서 개발한 에서는 데이터의 추가, 삭제, 수정, 확인이 필요한 경우가 많습니다. 그중에서도 데이터를 업데이트할 때 하나의 필드 또는 필드의 일부만 업데이트하면 되고 모든 필드를 함께 업데이트할 필요는 없습니다. 따라서 여기서는 어떤 필드를 업데이트해야 하는지, 어떤 필드를 업데이트해야 하는지 알아내야 합니다. 업데이트할 필요가 없습니다. array_diff와 array_diff_assoc는 모두 배열의 차이를 확인할 수 있습니다. 업데이트할 이전 데이터 배열과 제출된 새 데이터 배열을 비교하면 됩니다. 둘 다 차이 배열을 반환할 수 있습니다.

2 또한 해당 키 이름이 유지됩니다. 그러나 이 함수는 다차원 배열의 첫 번째 차원에 대해서만 차이 비교를 수행할 수 있습니다. 게다가 이 비교는 키 값만 비교하는 것이지 키 이름과는 아무런 관련이 없습니다(2개(또는 그 이상) 배열에서 키 값이 다른 값만 검색됩니다).

예: array_diff는 두 배열 사이의 c_pid 차이를 찾을 수 있습니다.

그러나 배열의 키 값이 변경된 값과 겹치는 경우 array_diff는 다음과 같이 변경된 값을 감지할 수 없습니다.

일반적인 상황에서는 array1이 무력화됩니다. array2의 비교에서 업데이트된 요소는 c_pid와 c_order이지만 결과는 c_order의 차이뿐입니다. 이유는 무엇입니까?

개인적인 이해: array_diff()는 키 이름에 관계없이 array1의 값과 array2의 값을 비교하므로 array1의 c_pid 값은 array2의 c_level에서 발견되므로 c_pid의 차이는 무시됩니다.

array_diff()

이에 대해서는 자세히 설명하지 않겠습니다. array_diff()와 동일하게 사용됩니다. 차이점은 키 이름을 사용하여 비교한다는 것입니다. 즉, 키 이름은 같지만 키 값이 다른 여러 배열을 찾습니다. .item, 즉 위의 array_diff의 두 번째 경우에서는 c_pid와 c_order의 차이점을 찾을 수 있습니다. 믿을 수 없다면 시도해 볼 수 있습니다. 초보자라 블로그에 글을 쓰는 것이 처음이라 요리를 주문하더라도 모든 고수님들이 이해해 주셨으면 좋겠습니다.

위 내용은 PHP의 array_diff_assoc() 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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