현재 위치: > 최신 기사 목록> PHP의 array_fill_keys 함수를 사용하여 캐시 구조의 기본값을 배치로 설정하는 방법은 무엇입니까?

PHP의 array_fill_keys 함수를 사용하여 캐시 구조의 기본값을 배치로 설정하는 방법은 무엇입니까?

M66 2025-05-17

개발 중에는 종종 일련의 키 이름, 특히 캐시, 구성 초기화 또는 데이터 정규화가 수행되는 시나리오에서 통합 기본값을 설정해야합니다. PHP의 내장 Array_Fill_Keys () 함수는이 문제를 매우 우아하게 해결하여 중복 코드를 줄이고 코드 가독성 및 실행 효율성을 향상시킬 수 있습니다.

이 기사는 캐시 구조의 기본값을 예제로 사용 하여이 목표를 달성하기 위해 array_fill_keys ()를 사용하는 방법을 설명합니다.

1. 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] => 
)

2. 응용 프로그램 시나리오 : 캐시 구조의 기본값을 배치로 설정

일반적인 시나리오를 상상해보십시오 : 예를 들어 사용자 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] => 
        )
    ...
)

3. 캐시 키 이름을 동적으로 얻고 기본 구조를 초기화합니다.

데이터베이스 또는 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);

4. 팁

  1. 참고 불변 구조의 경우 : 패딩의 기본값을 수정하면 배열이 동일한 구조를 나타 내기 때문에 모든 키에 영향을 미칩니다. 각 키가 독립적 인 구조를 갖도록하려면 수동으로 복사해야합니다.

 $cache = [];
foreach ($keys as $key) {
    $cache[$key] = $defaultCache; // 만약에 defaultCache 그것은 대상입니다,딥 카피가 필요합니다
}
  1. Array_Map과 함께 사용하는 것이 더 강력합니다 . Array_Map , Array_Column , Array_combine 및 기타 기능을 결합하면 매우 간결하고 유연한 데이터 처리 로직을 작성할 수 있습니다.

5. 요약

Array_Fill_Keys () 는 PHP에서 매우 실용적인 기능이며 특히 초기화 단계에서 배치 충전 구조에 적합합니다. 캐시 초기화, 데이터 정규화 또는 구성 사전 설정을 수행하든이 기능을 올바르게 사용하면 코드가 더 깔끔하고 우아하게 만들 수 있습니다.