현재 위치: > 최신 기사 목록> 성능 비교 : array_diff () vs array_diff_assoc ()

성능 비교 : array_diff () vs array_diff_assoc ()

M66 2025-05-13

php에서 array_diff ()array_diff_assoc () 는 일반적으로 사용되는 배열 비교 함수입니다. 그들은 종종 두 배열의 차이점을 찾는 데 사용되지만 다르게 행동합니다. 이 기사는 두 기능과 성능 차이의 차이점을 자세히 설명합니다.

1. Array_Diff () 작동 방식

Array_Diff () 함수는 두 배열을 비교하고 두 번째 배열에 있지 않은 첫 번째 배열의 모든 요소를 ​​반환하는 데 사용됩니다. 두 배열의 값을 비교하고 배열의 키를 무시합니다.

문법:

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

예:

 $array1 = [1, 2, 3, 4];
$array2 = [2, 3, 5];

$result = array_diff($array1, $array2);
print_r($result);  // 산출: [0 => 1, 3 => 4]

이 예에서 Array_Diff ()$ array1$ array2 의 값을 비교하고 $ array2가 아닌 $ array1 의 요소를 반환합니다.

2. Array_Diff_Assoc () 작동 방식

Array_Diff_Assoc () 함수는 두 배열을 비교하는 데 사용되지만 Array_Diff () 와 달리 값을 비교할뿐만 아니라 주요 이름도 비교합니다. 따라서 값과 키와 일치하지 않는 요소 만 다르게 간주됩니다.

문법:

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

예:

 $array1 = [1 => 'a', 2 => 'b', 3 => 'c'];
$array2 = [1 => 'a', 2 => 'x'];

$result = array_diff_assoc($array1, $array2);
print_r($result);  // 산출: [3 => 'c']

이 예에서 Array_Diff_Assoc ()는 $ array1$ array2 의 키와 값을 비교합니다. 키 3이 있는 요소 C가 두 번째 배열에는 존재하지 않으므로 해당 요소를 반환합니다.

3. 성능 비교 : array_diff ()array_diff_assoc ()

Array_Diff ()Array_Diff_Assoc () 은 배열 차이를 찾는 데 사용되는 함수이지만 작업 원칙이 다르기 때문에 성능도 다릅니다.

  • Array_Diff ()는 값 만 비교하여 비교 프로세스에는 값 만 포함되며 키를 확인할 필요가 없기 때문에 특히 배열이 클 때 일반적으로 더 효율적입니다.

  • Array_Diff_Assoc ()는 값을 비교해야 할뿐만 아니라 키를 비교할 필요가 있으므로 비교할 때 더 많은 기능을 수행하므로 특히 큰 배열에 사용될 때 약간 악화 될 수 있습니다.

4. 어느 것이 더 효율적입니까?

배열 값에만 관심이 있고 키의 차이에 신경 쓰지 않는 경우 Array_Diff ()를 사용하는 것이 더 효율적입니다. 키와 값 차이를 모두 고려해야하는 경우 Array_Diff_Assoc () 가 필수적이지만 성능이 더 큰 오버 헤드가됩니다.

5. 요약

  • Array_Diff ()를 사용한 값 비교는 더 효율적이며 배열 값 만 고려해야하는 경우에 적합합니다.

  • array_diff_assoc ()을 사용하여 키와 값을 비교하는 것이 더 정확하지만 성능이 약간 열등하며 키와 값이 모두 일치 해야하는 시나리오에 적합합니다.

애플리케이션의 값 차이에만 관심이있는 경우 array_diff ()를 선택하면 더 나은 성능을 제공합니다. 키와 값이 모두 엄격하게 일치 해야하는 경우 Array_diff_assoc ()는 더 적합한 선택입니다.