Array_flip () 는 PHP의 함수이며 그 기능은 키와 배열 값을 바꾸는 것입니다. 즉, 배열의 값은 키가되고 원래 키는 값이됩니다. 그러나이 기능은 경우에 따라, 특히 배열에 중복 값이있을 때 적용 범위 문제를 경험할 수 있습니다. 이 경우 이후 키는 이전 키를 덮어 씁니다. 이 기사는 반복 값의 경우를 시뮬레이션하여 Array_flip () 함수의 재정의를 테스트합니다.
먼저 Array_flip () 함수의 사용법을 간단히 검토해 봅시다. 이 함수는 어레이를 인수로 가져 와서 배열의 키와 값이 서로 바꿀 수있는 새 배열을 반환합니다. 배열의 값이 고유 한 경우 각 키가 보존됩니다.
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$flipped = array_flip($array);
print_r($flipped);
?>
출력은 다음과 같습니다.
Array
(
[1] => a
[2] => b
[3] => c
)
배열에 중복 값이 포함 된 경우 문제가 발생합니다. array_flip () 와 동일한 값의 키를 전달하면 후속 키는 이전 키를 덮어 씁니다. 예를 살펴 보겠습니다.
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 2];
$flipped = array_flip($array);
print_r($flipped);
?>
출력 결과는 다음과 같습니다.
Array
(
[1] => a
[2] => c
)
보시다시피, 키 B 와 C 는 모두 동일한 값이 2 이지만 Array_flip ()가 실행 된 후 키 C는 동일한 값을 가지기 때문에 키 B를 대체합니다. Array_flip ()는 나타나는 마지막 키 만 유지합니다. 이 재정의 문제는 일반적으로 Array_flip ()를 사용할 때주의를 기울여야 할 것입니다.
이 문제를 더 잘 이해하기 위해 일부 테스트 사례를 만들고 다른 시나리오에서 중복 값을 시뮬레이션 할 수 있으며 Array_flip () 의 동작을 관찰했습니다. 다음은 몇 가지 일반적인 테스트 시나리오입니다.
<?php
$array = ['a' => 1, 'b' => 1, 'c' => 2, 'd' => 2];
$flipped = array_flip($array);
print_r($flipped);
?>
출력은 다음과 같습니다.
Array
(
[1] => b
[2] => d
)
이 예에서는 값 1 과 2 가 각각 두 번 나타나고 마지막 키 ( b 및 d )는 이전 키를 무시합니다.
<?php
$array = ['a' => 1, 'b' => 1, 'c' => 1];
$flipped = array_flip($array);
print_r($flipped);
?>
출력은 다음과 같습니다.
Array
(
[1] => c
)
이 경우 모든 키의 값은 1 이므로 마지막 키 C 만 유지됩니다.
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 2, 'd' => 3, 'e' => 1];
$flipped = array_flip($array);
print_r($flipped);
?>
출력은 다음과 같습니다.
Array
(
[1] => e
[2] => c
[3] => d
)
여기에서 볼 수 있듯이 값 1 과 2는 각각 두 번 나타나고 E 와 C는 이전 키를 덮어 씁니다. 3은 발생하는 유일한 값이므로 D가 보존됩니다.
다른 반복 값을 시뮬레이션함으로써 반복 값을 처리 할 때 array_flip () 함수의 동작을 볼 수 있습니다. 이 함수는 이전 키를 무시하고 키의 마지막 발생을 유지합니다. 이 재정의 동작은 예상치 못한 결과로 이어질 수 있으므로 Array_flip ()를 사용할 때 특히 배열에 중복 값이있을 때 더욱주의를 기울여야합니다.