php에서 Array_diff_key () 및 array_diff_assoc () 은 배열을 비교하는 데 사용되는 함수이지만 비교 방법은 해당 시나리오와 분명히 다릅니다. 이 기사에서는이 두 기능의 차이점을 자세히 설명하고 해당 사용 시나리오에 대해 논의합니다.
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 에 있지 않은 키 값 쌍입니다.
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 에서 동일한 키 이름과 값을 갖지 않는 키 값 쌍입니다.
array_diff_key ()는 키 이름 만 비교하고 키의 해당 값을 무시합니다.
array_diff_assoc ()는 키 이름과 값을 동시에 비교합니다. 키 이름과 값이 다를 때만 다르게 간주됩니다.
Array_Diff_Key ()는 배열의 주요 이름에만 관심이 있지만 해당 값은 아닌 시나리오에 적합합니다. 예를 들어, 특정 키를 제거하거나 두 배열의 구조를 비교하려고합니다.
Array_Diff_Assoc ()은 두 배열의 키 이름과 값이 다른 요소를 필터링하는 등 배열의 키와 값을 완전히 비교해야 할 때 일반적인 시나리오에 적합합니다.
다른 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 () 의 차이입니다. 귀하의 요구에 따라 배열 차이를 처리 할 올바른 기능을 선택하면 코드의 효율성과 가독성이 효과적으로 향상 될 수 있습니다.