개발 중에는 종종 일련의 키 이름, 특히 캐시, 구성 초기화 또는 데이터 정규화가 수행되는 시나리오에서 통합 기본값을 설정해야합니다. PHP의 내장 Array_Fill_Keys () 함수는이 문제를 매우 우아하게 해결하여 중복 코드를 줄이고 코드 가독성 및 실행 효율성을 향상시킬 수 있습니다.
이 기사는 캐시 구조의 기본값을 예제로 사용 하여이 목표를 달성하기 위해 array_fill_keys ()를 사용하는 방법을 설명합니다.
Array_Fill_Keys ()는 지정된 값으로 배열의 지정된 키를 채우기 위해 PHP가 제공하는 배열 함수입니다.
함수 정의 :
array array_fill_keys(array $keys, mixed $value)
$ 키 : 모든 키 이름을 포함하는 배열.
$ 값 : 각 키에 할당 할 기본값.
예:
$keys = ['user_1', 'user_2', 'user_3'];
$defaultValue = null;
$cache = array_fill_keys($keys, $defaultValue);
print_r($cache);
산출:
Array
(
[user_1] =>
[user_2] =>
[user_3] =>
)
일반적인 시나리오를 상상해보십시오 : 예를 들어 사용자 ID에 따라 캐시 된 데이터를 초기화 해야하는 시스템 캐시 구조를 구축하는 것입니다.
$defaultCacheValue = [
'profile' => null,
'settings' => [],
'last_login' => null,
];
여러 사용자 ID가 있습니다.
$userIds = [101, 102, 103, 104];
이러한 구조를 수동으로 초기화하면 길고 유지하기가 어려워집니다. Array_Fill_Keys ()를 사용하여 쉽게 수행하십시오.
$keys = array_map(function ($id) {
return "user_cache_$id";
}, $userIds);
$cacheStructure = array_fill_keys($keys, $defaultCacheValue);
print_r($cacheStructure);
출력 결과 :
Array
(
[user_cache_101] => Array
(
[profile] =>
[settings] => Array
(
)
[last_login] =>
)
[user_cache_102] => Array
(
[profile] =>
[settings] => Array
(
)
[last_login] =>
)
...
)
데이터베이스 또는 API에서 사용자 ID를 얻는 경우 Array_Column () 및 기타 기능을 사용하여 동적으로 처리 할 수도 있습니다.
// 가정합니다 API 다음 구조를 반환합니다
$userData = [
['id' => 201, 'name' => 'Alice'],
['id' => 202, 'name' => 'Bob'],
['id' => 203, 'name' => 'Charlie'],
];
$userIds = array_column($userData, 'id');
$keys = array_map(function ($id) {
return "user_cache_$id";
}, $userIds);
$defaultCache = [
'profile_url' => 'https://m66.net/user/default',
'status' => 'offline',
'messages' => [],
];
$cache = array_fill_keys($keys, $defaultCache);
print_r($cache);
참고 불변 구조의 경우 : 패딩의 기본값을 수정하면 배열이 동일한 구조를 나타 내기 때문에 모든 키에 영향을 미칩니다. 각 키가 독립적 인 구조를 갖도록하려면 수동으로 복사해야합니다.
$cache = [];
foreach ($keys as $key) {
$cache[$key] = $defaultCache; // 만약에 defaultCache 그것은 대상입니다,딥 카피가 필요합니다
}
Array_Map과 함께 사용하는 것이 더 강력합니다 . Array_Map , Array_Column , Array_combine 및 기타 기능을 결합하면 매우 간결하고 유연한 데이터 처리 로직을 작성할 수 있습니다.
Array_Fill_Keys () 는 PHP에서 매우 실용적인 기능이며 특히 초기화 단계에서 배치 충전 구조에 적합합니다. 캐시 초기화, 데이터 정규화 또는 구성 사전 설정을 수행하든이 기능을 올바르게 사용하면 코드가 더 깔끔하고 우아하게 만들 수 있습니다.