現在の位置: ホーム> 最新記事一覧> [ネガティブインデックスアレイに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から始まり、順番に満たされます。
これは、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>

    ネガティブインデックスは、マージプロセス中に元のキー値を失い、変更されることがわかります。