>  기사  >  백엔드 개발  >  PHP 소스 코드 17에 대한 간략한 토론: array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc 소개

PHP 소스 코드 17에 대한 간략한 토론: array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc 소개

不言
不言원래의
2018-06-28 17:34:441527검색

이 글에서는 주로 array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc에 대한 PHP 소스 코드 소개를 소개합니다. 이제는 필요한 친구들이 참고할 수 있도록 공유합니다. PHP 소스 코드 17: array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc

소개 이 네 가지 함수는 동일한 함수 php_array_diff를 호출하지만 차이점은 매개변수입니다.

5가지 함수가 모두 같은 메소드를 호출하지만, 이 메소드에서는 입력 처리와 관련 메모리 해제 연산을 제외하면 프로그램 공유가 많지 않습니다.

의미상의 유사성 때문일까요?

array_diff:        php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_NORMAL,
                                    DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_INTERNAL); 
array_diff_ukey: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_KEY,
                                 DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_USER); 
array_udiff:    php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_NORMAL,
                            DIFF_COMP_DATA_USER, DIFF_COMP_KEY_INTERNAL);f
array_diff_uassoc: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_ASSOC,
                            DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_USER); 
array_udiff_uassoc: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_ASSOC,
                            DIFF_COMP_DATA_USER, DIFF_COMP_KEY_USER);

프로그램 설명:

입력을 받고 관련 오류 처리를 수행한 후

프로그램은 먼저 어떤 비교 함수가 있는지 확인합니다. 여기에는 다양한 동작과 data_compare_type에 대한 다양한 비교 함수가 있으며, 입력 매개변수 오류 처리도 다릅니다.

그런 다음 입력 매개변수를 복사하고 이전에 얻은 diff_key_compare_func에 따라 정렬합니다. 정렬은 zend_qsort 함수를 호출합니다.
그런 다음 반환 배열의 해시 테이블을 초기화하고 첫 번째 매개변수를 반환 배열에 복사합니다.
마지막으로 모든 첫 번째 매개변수 값을 순회합니다. 다른 매개변수에 없는지 확인합니다. 순회 과정에서 특정 값이 다른 매개변수에 있으면 반환된 배열에서 이 값과 동일한 요소를 모두 삭제합니다. 특정 값이 다른 매개변수에 없으면 건너뜁니다. 남아는 반환되어야 하는 값입니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP 소스 코드에 대한 간략한 토론 16: array_count_values ​​​​함수에 대해

PHP 소스 코드에 대한 간략한 토론 15: array_walk 함수에 대해

에 대한 간략한 토론 PHP 소스 코드 14: array_combine 함수 정보

위 내용은 PHP 소스 코드 17에 대한 간략한 토론: array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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