현재 위치: > 최신 기사 목록> Array_Diff_Key ()는 Array_Diff_Assoc ()와 어떻게 다릅니 까?

Array_Diff_Key ()는 Array_Diff_Assoc ()와 어떻게 다릅니 까?

M66 2025-06-06

php에서 Array_diff_key ()array_diff_assoc () 은 배열을 비교하는 데 사용되는 함수이지만 비교 방법은 해당 시나리오와 분명히 다릅니다. 이 기사에서는이 두 기능의 차이점을 자세히 설명하고 해당 사용 시나리오에 대해 논의합니다.

1. Array_diff_key () 함수

Array_Diff_Key ()는 두 개 이상의 배열의 키 이름 (키)을 비교하는 데 사용되며 첫 번째 배열에는 존재하지만 다른 배열에서는 존재하지 않는 키 값 쌍을 반환합니다.

문법

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

매개 변수 설명

  • $ array1 : 첫 번째 배열 (참조 배열).

  • $ array2, ... $ 배열 : 첫 번째 배열과 비교할 배열.

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 4,
    "c" => 5
];

$result = array_diff_key($array1, $array2);
print_r($result);

출력 결과

 Array
(
    [b] => 2
)

이 예에서는 array_diff_key ()가 두 배열의 주요 이름을 비교합니다. 반환 된 결과는 $ array1 이지만 $ array2 에 있지 않은 키 값 쌍입니다.

2. array_diff_assoc () 함수

Array_Diff_Assoc () 은 두 개 이상의 배열의 키 이름과 값 (키 및 값)을 비교하는 데 사용되며 첫 번째 배열에는 존재하지만 다른 배열에는 있지 않은 키 값 쌍을 반환합니다. Array_diff_key () 와 달리 키 이름을 비교할뿐만 아니라 키에 해당하는 값을 비교합니다.

문법

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

매개 변수 설명

  • $ array1 : 첫 번째 배열 (참조 배열).

  • $ array2, ... $ 배열 : 첫 번째 배열과 비교할 배열.

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 4,
    "c" => 3
];

$result = array_diff_assoc($array1, $array2);
print_r($result);

출력 결과

 Array
(
    [a] => 1
    [b] => 2
)

이 예에서 Array_Diff_Assoc ()는 $ array1$ array2 의 키 이름과 값을 비교합니다. 반환 된 결과는 $ array1 에 있지만 $ array2 에서 동일한 키 이름과 값을 갖지 않는 키 값 쌍입니다.

3. Array_diff_key ()Array_diff_assoc () 의 차이

키 이름 대 키 값

  • array_diff_key ()는 키 이름 만 비교하고 키의 해당 값을 무시합니다.

  • array_diff_assoc ()는 키 이름과 값을 동시에 비교합니다. 키 이름과 값이 다를 때만 다르게 간주됩니다.

시나리오를 사용하십시오

  • Array_Diff_Key ()는 배열의 주요 이름에만 관심이 있지만 해당 값은 아닌 시나리오에 적합합니다. 예를 들어, 특정 키를 제거하거나 두 배열의 구조를 비교하려고합니다.

  • Array_Diff_Assoc ()은 두 배열의 키 이름과 값이 다른 요소를 필터링하는 등 배열의 키와 값을 완전히 비교해야 할 때 일반적인 시나리오에 적합합니다.

예 : URL 교체

다른 URL을 포함하고 교체 해야하는 배열이 있다고 가정합니다. Key 값 또는 키 값을 기준으로 비교 해야하는지에 따라 Array_Diff_Key () 또는 Array_Diff_Assoc ()을 사용하여 교체를 구현할 수 있습니다.

 $urls = [
    "home" => "http://m66.net/home",
    "about" => "http://example.com/about",
    "contact" => "http://m66.net/contact"
];

$other_urls = [
    "home" => "http://m66.net/home",
    "about" => "http://m66.net/about",
];

$result = array_diff_key($urls, $other_urls);
print_r($result);

출력 결과

 Array
(
    [contact] => http://m66.net/contact
)

이 예에서는 키 이름을 기준으로 만 비교하고 마지막으로 $ URL 에 있지만 $ else_urls 는 아닌 항목을 찾습니다.

위는 Array_diff_key ()array_diff_assoc () 의 차이입니다. 귀하의 요구에 따라 배열 차이를 처리 할 올바른 기능을 선택하면 코드의 효율성과 가독성이 효과적으로 향상 될 수 있습니다.