현재 위치: > 최신 기사 목록> array_flip ()가 null, false 및 빈 문자열 값을 지원할 수 있습니까?

array_flip ()가 null, false 및 빈 문자열 값을 지원할 수 있습니까?

M66 2025-06-03

php에서 array_flip () 함수는 키와 값을 배열에서 바꾸는 데 사용됩니다. 기본 기능은 배열의 키를 값으로 값과 키로 배열의 값을 가져 오는 것입니다. 다음과 같은 배열이 있다고 가정합니다.

 $array = [
    'a' => 1,
    'b' => 2,
    'c' => 3
];

array_flip ($ array)을 호출 한 후 결과는 다음과 같습니다.

 $flippedArray = [
    1 => 'a',
    2 => 'b',
    3 => 'c'
];

Array_flip () 를 사용하는 동안 배열 값에 NULL , FALLE 또는 빈 문자열과 같은 특수 유형의 데이터가 포함되어 있으면 뒤집힌 결과에 영향을 줄 수 있습니다. 아래에서 우리는 array_flip () 에서이 세 가지 특수 값의 동작에 대해 자세히 설명합니다.

1.

배열의 값이 null 이면 array_flip ()는 을 키로 취합니다. 구체적으로, PHP의 NULL은 빈 문자열로 처리됩니다. 다시 말해, 여러 값은 동일한 키를 초래하고 결국 하나의 키만 유지됩니다. 따라서 배열에 중복 NULL 값이 있으면 뒤집힌 결과에 하나의 키만 있습니다.

 $array = [
    'a' => null,
    'b' => null
];

$flippedArray = array_flip($array);
print_r($flippedArray);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => b
)

보시다시피, 원래 배열에는 두 개의 값이 있지만 플립 후, NULL은 0 으로 처리되고 B는 a로 취급됩니다.

2. 거짓 가치

False 값의 경우 Array_flip () 는 정수 0 으로 변환합니다. NULL 과 유사하게, False는 특정 값을 가진 키로 취급되므로 배열에 여러 개의 잘못된 값이있는 경우 뒤집힌 후 주요 충돌이 발생하여 마지막 키 값 쌍 만 유지됩니다.

 $array = [
    'a' => false,
    'b' => false
];

$flippedArray = array_flip($array);
print_r($flippedArray);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => b
)

여기서, false0 , ba 로 변환되므로 뒤집힌 배열에는 하나의 키 0 만 갖습니다.

3. 빈 문자열 ( "" ) 값

빈 문자열 ( "" )이 배열 값으로 사용되면 Array_flip () 는 키로 취급합니다. 빈 문자열은 다른 값과 마찬가지로 키로 사용할 수 있으므로 배열에 여러 개의 빈 문자열 값이 있으면 충돌하며 결국 마지막 빈 문자열의 키만 보존됩니다.

 $array = [
    'a' => '',
    'b' => ''
];

$flippedArray = array_flip($array);
print_r($flippedArray);

출력 결과는 다음과 같습니다.

 Array
(
    [] => b
)

뒤집힌 배열에서 빈 문자열은 키로 취급되고 ( []는 빈 문자열을 의미), b는 a를 덮어 씁니다.

요약

특별 값을 만나면 Array_flip () 의 동작은 다음과 같이 요약됩니다.

  • NULL 값은 0 으로 취급되며 여러 값은 주요 충돌을 일으켜 마지막 키 만 남습니다.

  • 잘못된 값은 정수 0 으로 변환되며 여러 오 탐지 값은 주요 충돌을 일으켜 마지막 키를 남깁니다.

  • 빈 문자열 ( "" )이 값으로 사용되면 키로 간주됩니다. 여러 빈 문자열에는 주요 충돌이 발생하며 마지막 빈 문자열의 키만 유지됩니다.

따라서 Array_flip ()을 사용하면 배열에 이러한 특수 값이 포함되어 있으면 주요 충돌 문제에 특별한주의를 기울여야합니다. 불필요한 충돌을 피하려면 Array_flip ()를 사용하기 전에 배열 값 유형을 확인하여 바람직하지 않은 특수 값이 없는지 확인하는 것이 좋습니다.