현재 위치: > 최신 기사 목록> 정수 및 문자열로 배열에서 키 이름을 다루는 방법

정수 및 문자열로 배열에서 키 이름을 다루는 방법

M66 2025-05-15

PHP에서 배열의 키는 정수 또는 문자열 일 수 있습니다. 배열, 특히 배열 차이를 비교할 때이 두 가지 유형의 키를 올바르게 구별하는 것이 특히 중요합니다. 이 기사는 PHP의 array_diff_uassoc () 함수를 사용 하여이 상황을 처리하고 키 이름이 정수 및 문자열 일 때 차이를 처리하는 방법을 보여주는 방법을 살펴 봅니다.

1. array_diff_uassoc 함수 소개

php의 array_diff_uassoc () 함수는 둘 이상의 배열을 비교하고 그 차이를 반환 할 수있는 함수입니다. 배열 값을 기반으로 비교할뿐만 아니라 개발자가 배열 키 이름을 비교하는 기능을 사용자 정의 할 수 있습니다.

기능 프로토 타입 :

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 : 첫 번째 배열을 비교합니다.

  • $ array2 : 비교 해야하는 두 번째 배열.

  • $ key_compare_func : 사용자 정의 키 이름 비교를위한 콜백 함수.

이 함수는 $ array2 에 표시되지 않는 $ array1 의 요소를 포함하는 새 배열을 반환합니다. 이 기능은 배열의 값을 비교할뿐만 아니라 배열의 키를 비교한다는 점에 주목할 가치가 있습니다.

2. 키 이름 정수와 문자열의 차이

PHP에는 배열의 키가 정수 일 때와 키가 줄이있을 때 미묘한 차이가 있습니다. 예를 들어, 키 0 과 키 '0' 은 동일하게 보이면 PHP는 다른 키로 간주됩니다. 숫자 키와 문자열 키를 비교하려면 array_diff_uassoc () 이이 차이를 더 잘 제어하는 ​​데 도움이 될 수 있습니다.

샘플 코드 :

다음 두 배열이 있다고 가정합니다.

 $array1 = [
    0 => 'apple',
    '1' => 'banana',
    'orange' => 'orange'
];

$array2 = [
    0 => 'apple',
    1 => 'banana',
    'orange' => 'orange'
];

이 예에서 $ array1$ array2 에는 두 가지 동일한 값 ( 'Apple'및 'Banana')이 있지만 키는 정확히 같지 않습니다. $ array1 의 키 '1'은 문자열이고, $ array2 의 키 1은 정수입니다.

3. array_diff_uassoc을 사용하여 키 이름 차이를 해결하십시오

PHP가 요구에 따라 이러한 배열의 키를 비교하려면 사용자 정의 키 이름 비교 기능을 사용할 수 있습니다. 예를 들어, 숫자 키와 문자열 키가 동일하게 고려되기를 원한다면 비교하여 비교할 비교 함수를 만들 수 있습니다.

사용자 정의 키 이름 비교 함수

간단한 콜백 함수를 사용하여 모든 키를 문자열 유형으로 균일하게 변환 한 다음 비교할 수 있습니다.

 function key_compare_func($a, $b) {
    return strcmp((string)$a, (string)$b);
}

array_diff_uassoc을 사용한 비교 배열

이제 Array_diff_uassoc ()를 사용하여 두 배열을 비교하고 그 차이점을 확인합니다.

 <?php
$array1 = [
    0 => 'apple',
    '1' => 'banana',
    'orange' => 'orange'
];

$array2 = [
    0 => 'apple',
    1 => 'banana',
    'orange' => 'orange'
];

function key_compare_func($a, $b) {
    return strcmp((string)$a, (string)$b);
}

$result = array_diff_uassoc($array1, $array2, 'key_compare_func');

print_r($result);
?>

결과 분석

위 코드를 실행하면 $ result가 출력됩니다.

 Array
(
    [orange] => orange
)

보시다시피, $ array1$ array2는 키 유형 (문자열 대 정수)이 다르지만 PHP는 array_diff_uassoc () 함수와 맞춤형 키 이름 비교 함수를 통해 동일한 키로 비교합니다. 최종 결과는 키 '오렌지' 에 해당하는 값을 반환합니다.

4. 요약

정수와 문자열로서 키 이름의 차이점은 PHP 배열로 작업 할 때 약간의 혼란을 유발할 수 있지만 Array_Diff_Uassoc () 와 사용자 정의 키 이름 비교 함수 로이 문제를 쉽게 해결할 수 있습니다. 이 기능을 합리적으로 사용하면 배열 키 이름의 비교 동작을 정확하게 제어하여 프로그램이 예상대로 배열 작업을 수행 할 수 있도록 할 수 있습니다.

Array_Diff_Uassoc ()를 사용하면 특히 일관되지 않은 배열 키 이름 유형에 직면하여보다 유연한 배열 차이 비교를 달성 할 수 있으며, 이는 잠재적 오류를 효과적으로 피할 수 있습니다.