현재 위치: > 최신 기사 목록> [array_fill로 음수 인덱스 배열을 채울 때 어떻게됩니까? 행동 및 결과 분석

[array_fill로 음수 인덱스 배열을 채울 때 어떻게됩니까? 행동 및 결과 분석

gitbox 2025-09-30

1. 기본 사용 예제

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'A'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

출력 결과 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; A
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; A
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; A
)
</span></span>

이는 인덱스 0에서 시작하여 3 개의 요소가 채워진 기대치와 일치합니다.


2. 마이너스 숫자를 시작 색인으로 사용하십시오

$ start_index가 음수 인 경우, PHP는 오류를 던지지 않지만 키 이름으로 음수로 배열을 직접 채우는 것입니다.

예:

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(-</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'B'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

출력 결과 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [-</span><span><span class="hljs-number">3</span></span><span>] =&gt; B
    [-</span><span><span class="hljs-number">2</span></span><span>] =&gt; B
    [-</span><span><span class="hljs-number">1</span></span><span>] =&gt; B
)
</span></span>

보시다시피, 배열은 -3에서 시작하여 차례로 -1로 채워집니다.
이는 PHP에서 음수 지수가 허용되며 일반 정수 키 규칙에 따라 위로 증가 할 수 있음을 보여줍니다.


3. 양성 지수와 혼합하는 효과

또 다른 혼합 시나리오를 살펴 보겠습니다.

 <span><span><span class="hljs-variable">$result1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(-</span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'X'</span></span><span>);
</span><span><span class="hljs-variable">$result2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'Y'</span></span><span>);
</span><span><span class="hljs-variable">$merged</span></span><span> = </span><span><span class="hljs-variable">$result1</span></span><span> + </span><span><span class="hljs-variable">$result2</span></span><span>; </span><span><span class="hljs-comment">// 배열을 사용한 추가</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$merged</span></span><span>);
</span></span>

출력 결과 :

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [-</span><span><span class="hljs-number">2</span></span><span>] =&gt; X
    [-</span><span><span class="hljs-number">1</span></span><span>] =&gt; X
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; Y
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; Y
)
</span></span>

이것은 부정적이고 긍정적 인 지수가 동시에 존재하더라도 여전히 독립적 인 키 네임 스페이스를 유지하고 충돌하지 않을 것임을 보여줍니다.


4. 주목할만한 것들

  1. 배열 키는 음수 <br>를 허용합니다 PHP에서 배열 키는 정수 인 한 양수 또는 음수 일 수 있습니다.

  2. array_merge <br>의 차이 Array_Merge를 사용하면 값 키가 다시 표시되고 음수 키는 0부터 시작하는 양수 정수로 재구성됩니다.
    예:

     <span><span><span class="hljs-variable">$a</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(-</span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'Z'</span></span><span>);
    </span><span><span class="hljs-variable">$b</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_fill</span></span><span>(</span><span><span class="hljs-number">5</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">'W'</span></span><span>);
    </span><span><span class="hljs-variable">$merged</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>);
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$merged</span></span><span>);
    </span></span>

    출력 결과 :

     <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
    (
        [</span><span><span class="hljs-number">0</span></span><span>] =&gt; Z
        [</span><span><span class="hljs-number">1</span></span><span>] =&gt; Z
        [</span><span><span class="hljs-number">2</span></span><span>] =&gt; Z
        [</span><span><span class="hljs-number">3</span></span><span>] =&gt; W
        [</span><span><span class="hljs-number">4</span></span><span>] =&gt; W
    )
    </span></span>

    Merge 프로세스 중에 네거티브 인덱스가 원래의 키 값을 잃어 버릴 것이며 흡수 될 것임을 알 수 있습니다.