현재 위치: > 최신 기사 목록> array_fill_keys의 반환 결과가 기대에 부응하지 않는 이유는 무엇입니까?

array_fill_keys의 반환 결과가 기대에 부응하지 않는 이유는 무엇입니까?

M66 2025-06-06

Array_Fill_Keys는 지정된 키 값을 기반으로 배열을 채우는 PHP에서 매우 유용한 배열 함수입니다. 이 기능을 사용할 때 결과와 기대치가 반환되는 상황이 일관되지 않은 경우 걱정하지 마십시오. 문제의 근본 원인을 찾는 데 도움이되는 구체적인 예와 설명을 사용하겠습니다.

array_fill_keys 기능의 사용

먼저, array_fill_keys 함수의 기본 구문을 살펴 보겠습니다.

 array_fill_keys(array $keys, mixed $value): array
  • $ 키 : 배열 키 여야하는 배열.

  • $ 값 : 각 키에 해당하는 값.

이 함수는 키가 $ 키 매개 변수에서 나오는 새 배열을 반환하고 모든 값은 $ 값 으로 채워집니다.

샘플 코드

일반적인 사용법을 살펴 보겠습니다.

 <?php
$keys = ['a', 'b', 'c'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>

출력은 다음과 같습니다.

 Array
(
    [a] => 10
    [b] => 10
    [c] => 10
)

문제 분석 : 반환 된 결과는 기대치와 일치하지 않습니다

비슷한 코드를 사용한다고 가정하지만 반환 된 결과는 기대하는 것과 다르다고하면 몇 가지 이유가있을 수 있습니다. 불일치로 이어질 수있는 상황을 살펴 보겠습니다.

1. 키 값 배열에는 중복 값이 ​​포함되어 있습니다

$ 키 어레이에 중복 요소가 포함 된 경우 Array_Fill_Keys는 마지막 중복 키를 기반으로 키의 해당 값을 설정합니다. 예를 들어:

 <?php
$keys = ['a', 'b', 'a'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>

출력은 다음과 같습니다.

 Array
(
    [a] => 10
    [b] => 10
)

위의 코드에서 'A' 는 반복적으로 두 번 정의되지만 Array_Fill_Keys는 하나의 'A' 키 만 유지하고 그 값은 10 입니다. 이렇게하면 오류가 발생하지 않지만 배열 키의 고유성으로 인해 중복 키가 중복 제거됩니다.

2. 키 값 배열이 비어 있습니다

array_fill_keys 로 전달되는 $ 키 어레이가 비어 있으면 반환 된 배열은 빈 배열이됩니다.

 <?php
$keys = [];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>

산출:

 Array
(
)

이 경우 기능은 문제를 일으키지 않지만 결과에는 예상 컨텐츠가 없습니다.

3. 키 유형 문제

array_fill_keys array_fill_keys가 키를 배열에 사용하면 키 이름 유형이 결과에 영향을 미칩니다. 예를 들어, 키가 숫자 유형 인 경우 array_fill_keys는 정수 키로 취급합니다. 다음 예를 고려하십시오.

 <?php
$keys = [1, 2, 3];
$value = 'hello';
$result = array_fill_keys($keys, $value);
print_r($result);
?>

산출:

 Array
(
    [1] => hello
    [2] => hello
    [3] => hello
)

키가 문자열 유형 인 경우 배열의 인덱스가 변경됩니다.

문제 해결 및 솔루션

  1. 키 어레이에 중복 값이 ​​있는지 확인하십시오 . $ 키 어레이에 중복 요소가 없는지 확인하십시오. Array_unique ()를 사용하여 제거하거나 배열을 직접 확인할 수 있습니다.

  2. 배열 키 유형 확인 : 키가 문자열 유형이 되려면 $ 키 어레이의 요소가 모두 문자열 유형이거나 키 유형을 시전 할 수 있습니다.

  3. 디버깅 및 출력 : print_r () 대신 var_dump ()를 사용하여 키 유형과 세부 사항을 볼 수 있도록 잠재적 인 문제를 식별하는 데 도움이됩니다.

요약

Array_Fill_Keys 는 매우 유용한 기능이지만 중복 키 또는 유형 불일치로 인한 일관되지 않은 결과를 피하기 위해 키 유형 및 배열 구조에주의를 기울여야합니다. 출력이 기대치를 충족시키지 못하면 위의 측면에서 문제를 해결할 수 있습니다.

이 기사가 도움이되기를 바랍니다! 더 많은 질문이 있으시면 웹 사이트를 방문하십시오.