두 배열의 키 이름과 키 값을 비교하고 그 차이를 반환합니다.
<?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 중국어 웹사이트의 기타 관련 기사를 참조하세요!