현재 위치: > 최신 기사 목록> array_fill_keys 키 이름이 비어 있으면 오류가 발생합니까? 이 경계 상황을 올바르게 처리하는 방법

array_fill_keys 키 이름이 비어 있으면 오류가 발생합니까? 이 경계 상황을 올바르게 처리하는 방법

gitbox 2025-06-15

PHP에서 array_fill_keys 함수의 기능은 주어진 값으로 배열을 채우는 것이며 생성 된 배열은 지정된 키 이름을 사용합니다. 이는 매우 실용적인 기능입니다. 특히 배열을 초기화해야하고 배열을 채우기 위해 특정 키 값을 사용하려는 경우. 그러나 일부 경계 사례의 경우 들어오는 키 이름이 비어 있으면 오류가 발생하거나 예상 결과를 충족시키지 못합니다. 그렇다면 이것을 피하는 방법은 무엇입니까? 이 기사는 키 이름이 비어있을 때 Array_fill_keys 기능의 문제를 탐색하고 솔루션을 제공합니다.

1. array_fill_keys 함수의 기본 사용

array_fill_keys 함수는 두 가지 매개 변수를 수락합니다.

  1. : 키 이름을 포함하는 배열.

  2. : 배열을 채우는 데 사용되는 값.

 $array = array_fill_keys(['a', 'b', 'c'], 1);
print_r($array);

산출:

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

이 예에서 Array_fill_Keys는 배열 [ 'a', 'b', 'c'] 의 각 키 이름에 대한 값 1을 채 웁니다. 이 함수는 다음과 같이 작동합니다. 주어진 키 이름을 사용하여 새 배열을 생성하고 각 키 이름은 동일한 값에 해당합니다.

2. 키 이름이 비어 있으면 어떤 문제가 발생합니까?

NULL 값을 포함하는 키 이름의 배열을 전달하면 array_fill_keys 함수는 키가 포함되지 않은 배열을 반환합니다. 보다 구체적으로, 빈 문자열 또는 널이 키 이름으로 배열에 존재하는 경우, PHP는 이러한 키를 자동으로 건너 뛰므로 결과가 예상대로 예상되지 않을 수도 있습니다. 예는 다음과 같습니다.

 $array = array_fill_keys(['a', '', 'c'], 1);
print_r($array);

산출:

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

빈 문자열 무시된다는 것을 알게 될 것입니다. 오류는 직접적으로 발생하지 않지만, 특히 키 이름 배열에 NULL 값이 포함 된 경우 예상되는 동작이 아닙니다.

3. 키 이름이 비어있는 상황을 올바르게 처리하는 방법은 무엇입니까?

실제 개발에서는 array_fill_keys를 호출하기 전에 빈 키 이름을 확인하고 적절하게 처리해야합니다. 몇 가지 일반적인 솔루션은 다음과 같습니다.

1. 빈 키 이름을 걸러냅니다

array_fill_keys를 호출하기 전에 array_filter 함수를 통해 빈 키 이름을 필터링 할 수 있습니다. Array_Filter는 , 빈 문자열 또는 false 값으로 배열의 모든 요소를 ​​제거합니다.

 $keys = ['a', '', 'c'];
$filtered_keys = array_filter($keys, function($key) {
    return !empty($key);
});
$array = array_fill_keys($filtered_keys, 1);
print_r($array);

산출:

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

이런 식으로, 우리는 Key Name Array에 빈 키가 없도록 할 수 있으므로 array_fill_keys 로 전달되어 불필요한 널 값을 피할 수 있습니다.

2. 빈 키 이름을 교체하십시오

NULL 키 이름을 발견 할 때 해당 키를 계속 생성하려면 NULL 값을 필터링하기 전에 기본값을 제공 할 수 있습니다. 예를 들어, 빈 문자열 'default_key' 로 바꿀 수 있습니다.

 $keys = ['a', '', 'c'];
$keys = array_map(function($key) {
    return $key === '' ? 'default_key' : $key;
}, $keys);
$array = array_fill_keys($keys, 1);
print_r($array);

산출:

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

이러한 방식으로 원래 배열에 NULL 키 이름이 있더라도 NULL 키는 지정된 기본 키 이름으로 대체되어 데이터 손실을 피합니다.

3. Array_Merge를 사용하여 특정 상황을 처리하십시오

NULL 키 이름이 합법적이지만 최종 결과에서 NULL 키를 표시하려면 Array_Merge를 통해 NULL 키 이름의 데이터를 병합 할 수 있습니다. 예를 들어:

 $keys = ['a', '', 'c'];
$values = array_fill_keys($keys, 1);
$values = array_merge([], $values);  // 새 배열로 병합하십시오
print_r($values);

이렇게하면 빈 키 이름이 발생하더라도 배열의 구조가 여전히 처리됩니다.

4. 요약

Array_Fill_Keys 는 매우 유용한 PHP 기능이지만 실제 응용 프로그램에서는 들어오는 키 이름이 비어 있는지에 대해 특별한주의를 기울여야합니다. 빈 키 이름으로 인해 생성 된 배열이 예상 키를 놓치게하여 프로그램의 논리에 영향을 줄 수 있습니다. 따라서 array_fill_keys를 호출하기 전에 키 이름을 올바르게 확인하거나 전처리하는 것이 매우 중요합니다.

빈 키를 필터링하거나 빈 키 또는 기타 방법을 교체하면 빈 키 이름으로 인한 잠재적 인 문제를 효과적으로 피하고 코드를 강력하게 유지할 수 있습니다.