현재 위치: > 최신 기사 목록> array_fill_keys로 중첩 어레이를 만들 수 있습니까?

array_fill_keys로 중첩 어레이를 만들 수 있습니까?

M66 2025-05-14

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 의 고급 사용량을 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다.