PHP에서 array_fill_keys는 키 세트를 배열로 빠르게 채우고 지정된 값을 균일하게 할당 할 수있는 매우 실용적인 기능입니다. 많은 개발자들이 매일 사용하여 그러한 질문을 할 수 있습니다.
둥지 배열로 뛰어 들기 전에 array_fill_keys 의 기본 구문을 살펴 보겠습니다.
array_fill_keys(array $keys, mixed $value): array
그 목적은 주어진 키 이름 $ 키를 기반으로 각 키에 대해 동일한 값을 설정하는 것입니다. $ 키.
예:
$keys = ['name', 'email', 'age'];
$result = array_fill_keys($keys, null);
print_r($result);
산출:
Array
(
[name] =>
[email] =>
[age] =>
)
Array_Fill_Keys 자체는 자동으로 다층 중첩 구조를 생성하지는 않지만 배열 유형의 값을 전달하여 1 층 둥지를 구현할 수 있습니다.
예:
$keys = ['user1', 'user2', 'user3'];
$nestedStructure = [
'id' => 0,
'username' => '',
'email' => '',
'profile' => [
'avatar' => '',
'bio' => '',
]
];
$result = array_fill_keys($keys, $nestedStructure);
print_r($result);
산출:
Array
(
[user1] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
[user2] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
[user3] => Array
(
[id] => 0
[username] =>
[email] =>
[profile] => Array
(
[avatar] =>
[bio] =>
)
)
)
보시다시피, 우리는 array_fill_keys를 사용하여 각 사용자에 대해 사전 설정된 중첩 배열 구조를 성공적으로 만들었습니다.
중첩 어레이를 사용할 때 주목해야 할 매우 중요한 문제 중 하나 : 참조 .
Array_Fill_Keys는 직접 전달한 배열을 복사하지만 나중에 사용자 중 하나의 중첩 데이터를 수정하려면 먼저 깊은 사본을 작성해야합니다 . 그렇지 않으면 모든 키가 동일한 중첩 어레이를 공유 할 수 있습니다 (특히 개체를 사용하거나 할당을 수동으로 참조 할 때).
이 기술을 다음과 같은 많은 실제 프로젝트에 적용 할 수 있습니다.
여러 사용자의 기본 데이터 구조를 초기화하십시오
여러 구성 항목의 기본값을 채우십시오
인터페이스에 의해 반환 된 통합 형식을 작성하십시오.
$apiEndpoints = ['login', 'register', 'logout'];
$responseTemplate = [
'status' => 'success',
'data' => [],
'message' => '',
'link' => 'https://m66.net/api-docs'
];
$apiResponses = array_fill_keys($apiEndpoints, $responseTemplate);
Array_Fill_Keys는 "Necked Array"를 직접 생성하지는 않지만 중첩 된 구조를 포함하는 배열을 값으로 전달하여 구조화 된 초기화를 완전히 구현할 수 있습니다. 이 기술은 유사한 구조로 많은 양의 데이터를 구축 할 때 매우 효율적이고 간결합니다.
이 기사가 PHP 인코딩 효율을 향상시키기 위해 Array_fill_Keys 의 고급 사용량을 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다.