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 () 에서이 세 가지 특수 값의 동작에 대해 자세히 설명합니다.
배열의 값이 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로 취급됩니다.
False 값의 경우 Array_flip () 는 정수 0 으로 변환합니다. NULL 과 유사하게, False는 특정 값을 가진 키로 취급되므로 배열에 여러 개의 잘못된 값이있는 경우 뒤집힌 후 주요 충돌이 발생하여 마지막 키 값 쌍 만 유지됩니다.
$array = [
'a' => false,
'b' => false
];
$flippedArray = array_flip($array);
print_r($flippedArray);
출력 결과는 다음과 같습니다.
Array
(
[0] => b
)
여기서, false 는 0 , b 는 a 로 변환되므로 뒤집힌 배열에는 하나의 키 0 만 갖습니다.
빈 문자열 ( "" )이 배열 값으로 사용되면 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 ()를 사용하기 전에 배열 값 유형을 확인하여 바람직하지 않은 특수 값이 없는지 확인하는 것이 좋습니다.