현재 위치: > 최신 기사 목록> Array_diff_key ()가 원래 배열의 키 순서를 유지합니까?

Array_diff_key ()가 원래 배열의 키 순서를 유지합니까?

M66 2025-06-06

PHP에서 Array_Diff_Key () 는 두 개 이상의 배열을 비교하는 데 사용할 수있는 매우 유용한 기능이며, 첫 번째 배열에 모든 키 값 쌍이 포함 된 새 배열을 반환 하며이 키는 다른 배열에 존재하지 않습니다. 이를 통해 키에 의해 배열에서 요소를 제거 할 수 있습니다. 다음으로 질문을 탐색 할 것입니다. array_diff_key ()를 사용할 때 원래 배열의 키 순서가 보존됩니까?

1. array_diff_key () 의 기본 사용

먼저 Array_Diff_Key () 의 기본 사용법을 검토하겠습니다.

 <?php
$array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
];

$array2 = [
    'b' => 5,
    'd' => 6
];

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

print_r($result);
?>

산출:

 Array
(
    [a] => 1
    [c] => 3
)

이 예에서, array_diff_key ()는 두 개의 배열 array1array2를 비교하고 키가 Array2 에 나타나지 않는 경우 array1 에 키 값 쌍을 포함하는 배열을 반환합니다. 최종 출력은 새로운 배열이며 Array2 에 나타나지 않는 Array1 의 키만 유지됩니다.

2. 원래 배열의 키 순서

따라서 문제는 Array_diff_key ()가 원래 배열의 키 순서를 유지합니까? 대답은 : 예입니다 . PHP는 array_diff_key ()를 사용할 때 원래 배열에서 키 순서를 유지합니다.

다음 코드로 이것을 확인해 봅시다.

 <?php
$array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
];

$array2 = [
    'b' => 5,
    'd' => 6
];

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

echo "<pre>";
print_r($result);
echo "</pre>";
?>

산출:

 Array
(
    [a] => 1
    [c] => 3
)

Array_Diff_Key () 에 의해 반환 된 새 배열은 여전히 ​​AC 키의 순서를 유지합니다. 이러한 키를 Array2 에서 비교하더라도 Array1 의 키 순서는 영향을받지 않습니다. 이렇게하면 Array_Diff_Key ()가 배열을 재정렬하지 않지만 원래 배열의 키 순서로 유지됩니다.

3. 주문은 왜 보존됩니까?

PHP에서 배열 순서 (연관 배열의 경우)는 삽입 순서에 의해 결정되기 때문입니다. Array_Diff_Key ()가 실행되면 PHP는 키의 존재에 따라 비교하지만 이러한 키의 순서를 변경하지는 않습니다. Array 값 작동과 비교하여 Array_Diff_Key ()는 주로 키를 처리하므로 키 순서를 유지하는 것은 PHP의 설계 동작입니다.

4. 결론

요약하면, array_diff_key ()는 원래 배열의 키 순서를 유지합니다. 배열의 비교 방법에 관계없이 원래 배열의 키 순서는 결과에 보존되므로 Array_Diff_Key () 에 의존하여 요소를 정확하게 제거하고 데이터 순서를 보존 할 수 있습니다.

이 기사가 PHP에서 array_diff_key () 함수의 동작을 더 잘 이해하는 데 도움이되기를 바랍니다. 추가 질문이 있으시면 언제든지 물어보십시오.