현재 위치: > 최신 기사 목록> Array_Diff ()와 Array_Diff_Uassoc () 간의 사용 시나리오 비교

Array_Diff ()와 Array_Diff_Uassoc () 간의 사용 시나리오 비교

M66 2025-05-15

php에서 array_diff ()를 사용할 때와 Array_diff_uassoc ()를 사용할 때? 이 두 기능 간의 차이점과 적용 가능한 시나리오는 무엇입니까?

PHP는 많은 내장 배열 작업 기능을 제공하며, 그중에는 array_diff ()array_diff_uassoc () 가 매우 일반적으로 사용되는 두 가지 기능입니다. 이들은 모두 배열 간의 차이를 계산하는 데 사용되지만 특정 구현 및 해당 시나리오는 다릅니다. 이 기사는 사용 시나리오, 차이점 및이 두 기능의 해당 상황을 분석합니다.

1. array_diff () 함수

Array_Diff () 함수는 둘 이상의 배열 간의 차이를 계산하는 데 사용되며 첫 번째 배열에 나타나지 만 다른 배열에는없는 모든 요소가 포함 된 배열을 반환합니다. 이 함수는 배열의 주요 이름을 돌보지 않고 배열 값을 비교합니다.

문법:

 array_diff(array $array1, array $array2, array ...$arrays): array

예:

 <?php
$array1 = ["apple", "banana", "cherry"];
$array2 = ["banana", "cherry", "date"];
$result = array_diff($array1, $array2);
print_r($result);
?>

산출:

 Array
(
    [0] => apple
)

이 예에서 Array_Diff ()는 Array1 에 존재하지만 Array2 에서는 존재하지 않는 요소를 포함하는 배열을 반환합니다. 따라서 "Apple"은 Array1 나타나지 않기 때문에 보존됩니다.

시나리오 사용 :

Array_diff ()는 배열 값의 차이 만 돌볼 때만 작동합니다. 예를 들어, Array_Diff ()를 사용하여 사용자 제출 양식 데이터와 시스템 데이터의 차이를 비교하거나 설정 차이 작업을 수행 할 수 있습니다.

2. array_diff_uassoc () 함수

Array_Diff_Uassoc () 함수는 Array_Diff () 와 유사합니다. 주요 차이점은 값의 차이에 따라 비교할뿐만 아니라 키 이름의 차이를 고려하고 사용자 정의 비교 함수를 통해 배열에서 키 값 쌍을 비교할 수 있다는 것입니다.

문법:

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array

예:

 <?php
$array1 = ["apple" => "red", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "green"];
$result = array_diff_uassoc($array1, $array2, "strcasecmp");
print_r($result);
?>

산출:

 Array
(
    [apple] => red
)

이 예에서는 array_diff_uassoc ()가 strcasecmp를 비교 함수로 사용합니다. strcasecmp는 어레이에서 주요 이름 (즉, 과일 이름)을 비교하고 대소 문자를 비교합니다. Array1 에서 "Apple"키는 해당 값 "빨간색"을 가지며 Array2 에는 동일한 키가 없습니다. 따라서 Array_diff_uassoc ()는 "Apple"=> "red"를 반환합니다.

시나리오 사용 :

array_diff_uassoc ()는 키 이름과 키 값의 사용자 정의 비교를 기반으로 차이를 결정해야 할 때에 적합합니다. 특히 연관 배열을 처리 할 때 Array_diff_uassoc ()는 사용자 정의 비교 함수를 통해 비교 규칙을 조정할 수 있습니다. 일반적인 시나리오에는 데이터베이스 쿼리 결과 비교, 다차원 배열 처리 등이 포함됩니다.

3. Array_Diff ()Array_Diff_Uassoc () 의 차이

특성 Array_diff () Array_diff_uassoc ()
비교 표준 배열의 값 만 비교하십시오 배열 값과 키 이름을 동시에 비교하십시오
사용자 정의 비교를 지원할지 여부 지원되지 않습니다 사용자 정의 비교 함수를 통한 주요 이름 비교를 지원합니다.
해당 시나리오 배열 값의 차이 비교 배열 키 값 쌍 간의 차이 비교, 사용자 정의 비교 규칙 지원

4. 어떤 기능을 사용해야합니까?

  • Array_Diff () 사용 : 배열의 값 차이 만 돌보는 경우 Array_Diff ()를 사용하는 것이 가장 쉽고 효율적인 선택입니다. 예를 들어, 두 배열의 값을 비교하여 한 배열에는 존재하지만 다른 배열에는 존재하지 않는 요소를 찾으십시오.

  • Array_Diff_Uassoc () 사용 : 배열 값을 키 이름과 비교하거나 사용자 정의 키 이름에 대한 규칙을 비교 해야하는 경우 array_diff_uassoc ()를 사용하는 것이 더 적절합니다. 예를 들어, 연관 배열을 처리하거나 키 이름에 대한 특별 비교 요구 사항이있는 경우.

요약

  • Array_Diff ()는 배열 값의 차이를 계산하는 데 사용됩니다.

  • Array_Diff_Uassoc ()는 배열 값을 비교하는 것 외에도 더 복잡한 시나리오에 적합한 사용자 정의 키 이름 비교 규칙을 허용합니다.

  • 선택할 때는 귀하의 요구가 값을 비교하는지 또는 키 이름과 키 값의 차이점을 고려하는지 여부에 따라 다릅니다.

이 두 기능 간의 차이점과 해당 시나리오를 이해함으로써 배열 차이를보다 유연하게 처리하고 코드의 효율성과 가독성을 최적화 할 수 있습니다.