현재 위치: > 최신 기사 목록> array_fill_keys 중간 키 이름이 반복되면 어떻게됩니까?

array_fill_keys 중간 키 이름이 반복되면 어떻게됩니까?

M66 2025-05-14

php에서 array_fill_keys ()는 새 배열을 생성하고 지정된 키 이름을 동일한 값으로 채우는 매우 유용한 기능입니다. 이 함수의 구문은 다음과 같습니다.

 array_fill_keys(array $keys, mixed $value): array
  • $ 키 : 키 이름을 포함하는 배열.

  • $ 값 : 각 키 이름에 지정된 값.

1. 기본 예

간단한 예가 있다고 가정합니다.

 $keys = ['a', 'b', 'c'];
$value = 1;

$result = array_fill_keys($keys, $value);
print_r($result);

출력은 다음과 같습니다.

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

이 예는 간단합니다. Array_fill_Keys ()는 제공된 키 이름 A , B , C 및 지정된 값 1을 기반으로 새 배열을 만듭니다.

2. 키 이름이 반복됩니다

그러나 문제는 $ 키 어레이가 Array_Fill_Keys () 에 중복 키 이름을 포함 할 때이 중복 키 이름을 무시하고 나타나는 마지막 키 값 쌍 만 유지한다는 것입니다.

예를 들어 다음 코드를보십시오.

 $keys = ['a', 'b', 'a', 'c'];
$value = 1;

$result = array_fill_keys($keys, $value);
print_r($result);

결과에 중복 가 포함될 것으로 예상 될 수 있지만 실제로는 다음과 같습니다.

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

이 예에서 키 이름 A는 array_fill_keys () 로 반복적으로 전달되지만 배열의 결과는 하나의 키 A 만 유지하고 그 값은 1 입니다. 이 동작은 배열의 주요 이름이 PHP에서 고유하기 때문에 반복 된 키 이름이 무시되므로 마지막 키 만 남습니다.

3. 왜 이런 일이 발생합니까?

이 동작은 PHP 배열의 내부 구현으로 설명 할 수 있습니다. PHP에서 배열의 주요 이름은 독특합니다. Array_Fill_Keys ()가 새 배열을 생성하면 실제로 각 키 이름을 지정된 값으로 바인딩하고 중복 키 이름이있는 경우 키 이름의 마지막 발생 만 유지됩니다. PHP의 배열은 동일한 키 이름이 두 번 나타나지 않기 때문에 배열에서 중복 키를 피하는 것입니다.

4. 중복 키 이름을 피하는 방법은 무엇입니까?

이 문제를 피하고 array_fill_keys () 로 전달 된 $ 키 에 중복 키 이름이 없는지 확인하려면 먼저 Array_unique ()를 사용하여 중복 키 이름을 제거 할 수 있습니다.

 $keys = ['a', 'b', 'a', 'c'];
$value = 1;

$uniqueKeys = array_unique($keys);
$result = array_fill_keys($uniqueKeys, $value);
print_r($result);

출력은 다음과 같습니다.

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

이런 식으로, 우리는 독특한 키 이름 만 새 배열을 채우는 데 사용되도록합니다.

5. 요약

Array_Fill_Keys () 는 매우 편리한 기능이지만 전달 된 키 이름 배열에 중복 키 이름이 포함 된 경우 중복 부분을 무시하고 나타나는 마지막 키 값 쌍 만 유지합니다. 이 동작은 PHP 배열 설계의 일부로 배열의 키 이름의 고유성을 보장합니다. 중복 키 이름 문제를 처리 해야하는 경우 Array_unique () 를 통해 중복 키를 제거하여 각 키 이름이 고유한지 확인할 수 있습니다.

이 기사가 중복 키 이름을 발견 할 때 array_fill_keys () 함수와 동작을 더 잘 이해하는 데 도움이되기를 바랍니다. 다른 질문이 있으면 언제든지 질문을 할 수 있습니다!