현재 위치: > 최신 기사 목록> 배열에 중복 키가있는 경우 array_combine ()가 오류를보고합니까?

배열에 중복 키가있는 경우 array_combine ()가 오류를보고합니까?

M66 2025-05-16

PHP에서 array_combine () 함수는 두 배열을 연관 배열로 결합하는 데 사용됩니다. 첫 번째 매개 변수는 키 어레이이고 두 번째 매개 변수는 값 배열입니다. 함수는 키 어레이의 각 요소를 연관 배열의 키로 사용하고 각 요소는 해당 값으로 값 배열의 각 요소를 사용하고 마지막으로 새 배열을 반환합니다.

그러나 키 어레이에 중복 키가 있으면 Array_combine ()을 사용할 때 문제가 발생합니다. 무슨 일이 일어나고이 상황을 다루는 방법을 살펴 보겠습니다.

1. array_combine () 의 기본 사용

Array_combine () 의 구문은 다음과 같습니다.

 array_combine(array $keys, array $values): array|false
  • $ 키 : 키 이름을 포함하는 배열.

  • $ 값 : 키의 해당 값을 포함하는 배열.

$ keys array의 요소가 $ 값 배열의 요소에 일대일로 해당하는 경우, array_combine ()은 새 연관 배열을 반환합니다.

샘플 코드 :

 $keys = ['a', 'b', 'c'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);
print_r($result);

출력 결과 :

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

2. 키 어레이에 중복 키가있을 때 어떻게됩니까?

키 어레이에 중복 키가 있으면 Array_combine ()이 오류를보고하여 False를 반환합니다. PHP에서 배열의 키는 고유해야하며 키 값을 복제 할 수 없기 때문입니다.

샘플 코드 :

 $keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$result = array_combine($keys, $values);

if ($result === false) {
    echo "오류가 발생했습니다,중복 키는 배열에 있습니다。";
}

출력 결과 :

 오류가 발생했습니다,중복 키는 배열에 있습니다。

위에서 볼 수 있듯이 Array_combine ()은 직접 거짓을 반환하고 유효한 연관 배열을 생성하지 않습니다.

3. 배열에 중복 키가있는 상황을 처리하는 방법은 무엇입니까?

중복 키로 인한 오류를 피하려면 Key Array에 Array_combine ()을 사용하기 전에 중복 키가 포함되어 있는지 확인할 수 있습니다. 중복 된 키가있는 경우 일반적으로 다음 방법을 사용하여 처리 할 수 ​​있습니다.

3.1. 중복 키를 제거하십시오

Array_unique () 함수는 중복 키를 제거하는 데 사용될 수 있습니다. 이렇게하면 array_combine () 로 전달 된 키 어레이가 복제되지 않도록합니다.

 $keys = ['a', 'b', 'b'];
$values = [1, 2, 3];
$keys = array_unique($keys);  // 중복 키를 제거하십시오

$result = array_combine($keys, $values);
print_r($result);

출력 결과 :

 Array
(
    [a] => 1
    [b] => 2
)
3.2. 맞춤형 결합 전략

또 다른 방법은 중복 키를 처리하기 위해 사용자 정의 전략을 사용하는 것입니다. 예를 들어, array_count_values ​​()를 사용하여 각 키가 나타나는 횟수를 계산하고 특정 규칙에 따라 반복 키를 처리합니다 (예 : 숫자 접미사가 추가).

 $keys = ['a', 'b', 'b'];
$values = [1, 2, 3];

$keys_count = array_count_values($keys);
foreach ($keys_count as $key => $count) {
    if ($count > 1) {
        // 중복 키를 처리합니다,예를 들어, 키 다음에 숫자를 추가하십시오
        $keys = array_map(function ($k) use ($key) {
            static $counter = 1;
            if ($k === $key) {
                return $key . $counter++;
            }
            return $k;
        }, $keys);
    }
}

$result = array_combine($keys, $values);
print_r($result);

출력 결과 :

 Array
(
    [a] => 1
    [b1] => 2
    [b2] => 3
)

4. 요약

Array_combine ()을 사용하는 경우 키 어레이에 중복 키가 있으면 PHP가 오류를보고하고 False를 반환합니다. 이를 피하려면 Array_unique () 함수를 사용하여 중복 키를 제거하거나 필요에 따라 중복 키를 처리하기위한 전략을 사용자 정의 할 수 있습니다.

이러한 방법을 통해 Array_combine ()을 사용할 때 오류를 피하고 실제 요구에 따라 키 처리를 조정할 수 있습니다.