PHP에서 배열은 순서 및 키드 데이터 구조입니다. 키-값 스왑은 새로운 배열을 생성하기 위해 배열의 키와 값을 바꾸는 것을 의미합니다. 배열 요소의 데이터 유형에 따라 키 값 교환을 구현하기 위해 다른 알고리즘을 선택할 수 있습니다.
데이터 유형 | 연산 |
---|---|
연관 배열 (키는 문자열 또는 정수입니다) | Array_flip () |
일반 배열 (키는 정수입니다) | asort () + array_keys () |
객체 배열 | Array_Map () + 사용자 정의 콜백 함수 |
배열의 키가 문자열 또는 정수 인 경우 array_flip () 함수를 사용하여 키 값 교환을 구현할 수 있습니다.
$arr = ['name' => 'John', 'age' => 30];
$flippedArr = array_flip($arr);
print_r($flippedArr);
출력 결과 :
Array
(
[John] => name
[30] => age
)
키가 정수 인 일반 배열의 경우 먼저 Asort ()를 사용하여 배열을 정렬 한 다음 Array_Keys ()를 사용하여 새 키를 얻습니다.
$arr = [1, 2, 3, 4, 5];
asort($arr);
$flippedArr = array_keys($arr);
print_r($flippedArr);
출력 결과 :
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
객체가 포함 된 배열의 경우 사용자 정의 콜백 함수와 함께 array_map ()을 사용하여 키 값 교환을 구현할 수 있습니다.
class Person {
public $name;
public $age;
}
$person1 = new Person();
$person1->name = 'John';
$person1->age = 30;
$person2 = new Person();
$person2->name = 'Mary';
$person2->age = 25;
$arr = [$person1, $person2];
$flippedArr = array_map(function ($obj) {
return [$obj->name, $obj];
}, $arr);
print_r($flippedArr);
출력 결과 :
Array
(
[John] => Person Object
(
[name] => John
[age] => 30
)
[Mary] => Person Object
(
[name] => Mary
[age] => 25
)
)
위의 것은 PHP 어레이에서 몇 가지 일반적인 방법과 키 가치 교환의 실질적인 사례입니다. 다른 데이터 유형에 따라 적절한 알고리즘을 선택하면 프로그램의 효율성과 가독성이 향상 될 수 있습니다.