<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>Ausgangsergebnis:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => A
[</span><span><span class="hljs-number">1</span></span><span>] => A
[</span><span><span class="hljs-number">2</span></span><span>] => A
)
</span></span>Dies steht im Einklang mit den Erwartungen, wobei 3 Elemente ab Index 0 ausgefüllt sind.
Wenn $ start_index eine negative Zahl ist, wirft PHP keinen Fehler aus, sondern füllt das Array direkt mit der negativen Zahl als Schlüsselname.
Beispiel:
<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>Ausgangsergebnis:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[-</span><span><span class="hljs-number">3</span></span><span>] => B
[-</span><span><span class="hljs-number">2</span></span><span>] => B
[-</span><span><span class="hljs-number">1</span></span><span>] => B
)
</span></span> Wie Sie sehen können, beginnt das Array von -3 und ist wiederum bis -1 gefüllt.
Dies zeigt, dass negative Indizes in PHP zulässig sind und gemäß den normalen Ganzzahl -Schlüsselregeln nach oben erhöht werden können.
Schauen wir uns ein anderes gemischtes Szenario an:
<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">// Addition mit Array</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>Ausgangsergebnis:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[-</span><span><span class="hljs-number">2</span></span><span>] => X
[-</span><span><span class="hljs-number">1</span></span><span>] => X
[</span><span><span class="hljs-number">3</span></span><span>] => Y
[</span><span><span class="hljs-number">4</span></span><span>] => Y
)
</span></span>Dies zeigt, dass auch wenn negative und positive Indizes gleichzeitig existieren, sie ihre eigenen unabhängigen Schlüsselnamenspaces beibehalten und nicht in Konflikt stehen.
Arrayschlüssel ermöglichen negative Zahlen <br> In PHP können Arrayschlüssel entweder positiv oder negativ sein, solange sie Ganzzahlen sind.
Der Unterschied von Array_Merge <br> Bei der Verwendung von Array_Merge werden die Wertschlüssel wieder integriert und die negativen Tasten werden ab 0 in positiven Ganzzahlen umgewandelt.
Beispiel:
<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>Ausgangsergebnis:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => Z
[</span><span><span class="hljs-number">1</span></span><span>] => Z
[</span><span><span class="hljs-number">2</span></span><span>] => Z
[</span><span><span class="hljs-number">3</span></span><span>] => W
[</span><span><span class="hljs-number">4</span></span><span>] => W
)
</span></span>Es ist ersichtlich, dass negative Indizes während des Zusammenführungsverfahrens den ursprünglichen Schlüsselwert verlieren und umbenannt werden.