현재 위치: > 최신 기사 목록> Custom Array_flip ()에 대한 결함 내전 처리 로직 ()

Custom Array_flip ()에 대한 결함 내전 처리 로직 ()

M66 2025-05-18

PHP에서 array_flip () 함수의 함수는 키와 값을 배열에서 교환하는 것입니다. 일반적으로 값이 고유 한 배열에 적용됩니다. 배열의 값이 복제되거나 들어오는 매개 변수가 배열이 아닌 경우 array_flip () 함수가 예상대로 작동하지 않을 수 있습니다. 이 기사에서는 array_flip () 함수의 결함-방해 처리 로직을 사용자 정의하는 방법에 대해 논의하여 이러한 예외는 중복 키 값 및 비 건조 데이터와 같이 우아하게 처리 될 수 있습니다.

1. array_flip () 함수의 기본 사용

array_flip () 함수의 기본 사용량은 키와 값을 배열에서 교환하는 것입니다. 예를 들어:

 $array = ['a' => 1, 'b' => 2, 'c' => 3];
$flippedArray = array_flip($array);
print_r($flippedArray);

출력은 다음과 같습니다.

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

위에서 볼 수 있듯이 Array_flip ()는 배열의 키를 값과 값으로 변환합니다.

2. 중복 키 값을 처리합니다

array_flip () 함수는 키 값의 마지막 발생을 수행하여 중복 값을 처리합니다. 배열에 여러 개의 동일한 값이있는 경우 마지막 키 값 만 유지되고 다른 값은 버려집니다.

예를 들어:

 $array = ['a' => 1, 'b' => 2, 'c' => 1];
$flippedArray = array_flip($array);
print_r($flippedArray);

출력은 다음과 같습니다.

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

이 예에서 원래 키 'A''C' 는 값 1 과 관련이 있지만 Array_flip ()가 나타나는 마지막 키 값을 가져 오기 때문에 최종 결과에서 'C' 만 유지됩니다.

이 상황을 더 잘 처리하려면 데이터 손실을 피하기 위해 중복 키 값을 기록하는 기능을 사용자 정의 할 수 있습니다.

3. custom array_flip () 함수

아래는 개선 된 array_flip () 함수이며, 중복 값을 캡처하고 배열에 저장하여 데이터가 손실되지 않도록합니다.

 function custom_array_flip($array) {
    if (!is_array($array)) {
        throw new InvalidArgumentException('전달 된 매개 변수는 배열이어야합니다');
    }

    $flipped = [];
    $duplicates = [];

    foreach ($array as $key => $value) {
        if (isset($flipped[$value])) {
            // 값이 이미 존재하는 경우,중복 값을 기록합니다
            $duplicates[] = $value;
        } else {
            $flipped[$value] = $key;
        }
    }

    return ['flipped' => $flipped, 'duplicates' => $duplicates];
}

$array = ['a' => 1, 'b' => 2, 'c' => 1];
$result = custom_array_flip($array);
print_r($result);

산출:

 Array
(
    [flipped] => Array
        (
            [1] => a
            [2] => b
        )
    [duplicates] => Array
        (
            [0] => 1
        )
)

이 예에서는 중복 키 값 ( 1 값)을 중복 배열에서 직접 버리는 대신 기록합니다.

4. 비 어선 데이터 상황을 처리합니다

Array_flip ()는 배열에만 적용 할 수 있습니다. 전달 된 매개 변수가 배열이 아닌 경우 PHP는 경고를 던집니다. 프로그램의 예외를 피하기 위해 사용자 정의 함수의 매개 변수 유형에 확인을 추가하고 적절한 예외 또는 오류 프롬프트를 던질 수 있습니다.

이전 예제 에서이 확인을 수행했습니다.

 if (!is_array($array)) {
    throw new InvalidArgumentException('전달 된 매개 변수는 배열이어야합니다');
}

이런 식으로, 통과 된 것이 배열이 아닌 경우, 우리는 invalidargumentexception 예외를 잡아서 버려서 사용자에게 매개 변수 유형의 오류를 유발할 것입니다.

5. 요약

Array_flip () 함수를 사용자 정의하면 중복 키 값과 비 어선 데이터를 효과적으로 처리 할 수 ​​있습니다. 실제 개발 에서이 사용자 정의 논리는 코드의 견고성을 향상시키고 비정상적인 입력에 직면 할 때 프로그램이 충돌하지 않도록 할 수 있습니다. 또한 데이터의 중복 값을 합리적으로 처리하고 의미있는 오류 정보를 제공하여 사용자가 문제를보다 쉽게 ​​찾아서 해결할 수 있도록해야합니다.