본문 바로가기
PROGRAMMING/PHP

PHP array_flip() 키와 값 교체

by itengineer 2023. 7. 7.
반응형

array_flip() 함수는 PHP에서 사용되는 배열의 키(key)와 값(value)을 상호 전환하는 함수입니다. 이 함수는 원래 배열의 키(key)를 값(value)으로, 값(value)을 키(key)로 갖는 새로운 배열을 생성합니다.

다음은 array_flip() 함수의 구문입니다.

array_flip(array $array) : array

 

- $array: 키(key)와 값(value)을 상호 전환할 배열입니다.

다음은 array_flip() 함수를 사용하여 배열의 키(key)와 값(value)을 상호 전환하는 예시입니다.

$fruits = array(
    'a' => 'apple',
    'b' => 'banana',
    'o' => 'orange'
);

$flipped = array_flip($fruits);

print_r($flipped);


출력

Array
(
    [apple] => a
    [banana] => b
    [orange] => o
)



위의 예시에서는 $fruits 배열의 키(key)와 값(value)을 상호 전환하여 $flipped 배열을 생성합니다. 새로운 배열 $flipped에는 원래 배열의 값(value)들이 키(key)로, 원래 배열의 키(key)들이 값(value)으로 할당됩니다.

주의할 점은, array_flip() 함수는 원래 배열의 값(value)이 고유(unique)해야만 정상적으로 작동합니다. 만약 원래 배열에 중복된 값이 있다면, 중복된 값은 마지막 발생한 키(key)로 덮어씌워집니다. 이 때문에 array_flip() 함수를 사용하기 전에 원래 배열의 값들이 고유(unique)한 지 확인하는 것이 중요합니다.

따라서, array_flip() 함수를 사용하면 기존 배열의 키(key)와 값(value)을 상호 전환하여 새로운 배열을 생성할 수 있습니다.

 

다음은 array_flip() 함수를 사용한 몇 가지 예입니다.

  • 연관 배열의 키와 값 바꾸기: 연관 배열에서 키와 값의 역할을 바꾸어야 할 때 array_flip() 함수를 사용할 수 있습니다. 예를 들어, 사용자의 권한 목록을 연관 배열로 가지고 있을 때 권한 키를 기준으로 검색해야 할 경우가 있을 수 있습니다.
$permissions = [
    'read' => '읽기',
    'write' => '쓰기',
    'execute' => '실행'
];

// 키와 값의 위치를 바꾸어 검색을 편리하게 함
$flippedPermissions = array_flip($permissions);
// $flippedPermissions = [
//     '읽기' => 'read',
//     '쓰기' => 'write',
//     '실행' => 'execute'
// ]

// 사용자의 특정 권한으로부터 권한 키를 얻음
$userPermission = '읽기';
$permissionKey = $flippedPermissions[$userPermission];
// $permissionKey = 'read'

  • 값의 유일성 보장: 배열의 값들이 고유하도록 하기 위해 array_flip() 함수를 사용할 수 있습니다. 예를 들어, 중복된 값이 포함된 배열에서 값들을 고유하게 유지해야 할 때 사용할 수 있습니다.
$colors = ['red', 'green', 'blue', 'green', 'yellow'];

// 값들을 고유하게 유지
$uniqueColors = array_flip(array_flip($colors));
// $uniqueColors = ['red', 'green', 'blue', 'yellow']

  • 값 검색을 위한 효율적인 매핑: 배열의 값을 키로 사용하여 값을 검색해야 할 때 array_flip() 함수를 사용할 수 있습니다. 예를 들어, 매우 큰 배열에서 값에 대한 빠른 검색을 수행해야 하는 경우가 있을 수 있습니다.
$products = [
    'A100' => 'Apple',
    'B200' => 'Banana',
    'C300' => 'Carrot',
    // 매우 큰 배열 ...
];

// 제품명을 키로 하여 제품 코드를 검색하기 위해 배열을 뒤집음
$productCodes = array_flip($products);

// 제품명에 대한 제품 코드 검색
$productName = 'Banana';
$productCode = $productCodes[$productName];
// $productCode = 'B200'



이러한 예는 array_flip() 함수의 일부 활용 방법을 보여줍니다. 실제로 array_flip() 함수는 배열의 키와 값을 역전시켜 검색 및 고유성 유지를 위한 목적으로 사용될 수 있으며, 다양한 상황에서 데이터 구조화와 검색을 효율적으로 처리하는 데 활용될 수 있습니다.

반응형

댓글