PHPプログラミングでは、アレイ操作は非常に一般的なタスクです。通常、配列をマージしたり、配列の要素を交換したり、複数の配列の要素をマージする必要があります。この時点で、 array_replace()関数は非常に便利なツールです。配列内の値を置き換えるだけでなく、複数の数値を組み合わせます。
この記事では、array_replace()関数の使用法を詳細に紹介して、PHPで複数の配列をマージする方法をよりよく理解するのに役立ちます。
array_replace()は、1つ以上の配列の要素を最初の配列に組み合わせたPHP組み込み関数です。アレイに同じキーが存在する場合、後続の配列の値は、最初の配列の同じキーの値を置き換えます。言い換えれば、以前の配列の要素を、後続の配列の要素に順番に置き換えます。
<span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> ...</span><span><span class="hljs-variable">$arrays</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ array1 :ターゲット配列としての最初の配列は、他の配列の要素に置き換えられます。
$ arrays : $ array1の対応するキーの値に値を置き換える1つ以上の配列。
2つの配列があり、2番目の配列の値を最初の配列にマージするとします。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</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 class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[a] => </span><span><span class="hljs-number">1</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>
この例では、 array_replace()は、 $ array1の同じキー(つまり'b' )の値に$ array2の値を$ array2に$ array2に$ array2に追加します。
array_replace()は、複数の配列を渡すこともサポートします。これは、複数の配列の要素をマージするために使用できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$array3</span></span><span> = [</span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">"d"</span></span><span> => </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>, </span><span><span class="hljs-variable">$array3</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 class="hljs-meta">?></span></span><span>
</span></span>
出力結果:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[a] => </span><span><span class="hljs-number">1</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
[d] => </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>
この例では、 $ array2の値は$ array1の対応するキー( 'b' )を置き換えますが、 $ array3のキー値ペアは結果アレイに直接追加されます。
array_replace()は複数の配列をマージするために使用できますが、 array_merge()関数とは多少異なります。
array_replace() :キーに従って元の配列の値を置き換えます。つまり、同じキーがある場合、その後の配列は、以前の配列の対応するキーを上書きします。
array_merge() :キーが同じかどうかに関係なく、配列を組み合わせます。インデックス付きアレイの場合、それはリネックスします。連想配列の場合、元のキーを保持します。
例えば:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-variable">$result_merge</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result_merge</span></span><span>);
</span><span><span class="hljs-meta">?></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>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>
array_merge()を使用する場合、arrayのインデックスは並べ替えられますが、 array_replace()では、インデックスとキーは変更されません。
array_replace()は、元の配列に存在するキーのみを置き換えます。不一致のキーの場合、その後の配列が結果に直接追加されます。
配列に数値キーがある場合、 array_replace()はキーに従って置き換えられ、数値キーの順序が変更される可能性があります。およびarray_merge()は数値キーを再インドします。
array_replace()は、既存の要素を配列内の既存の要素を置き換えるか、複数の配列の要素をアレイにマージするのに適した非常に強力な関数です。 ArrayをPHPで操作する場合、 array_replace()の使用をマスターすると、コードがより簡潔で効率的になります。
数値の複数の組み合わせを扱うときにキー価値の交換と追加に注意する必要がある場合、 array_replace()は間違いなく不可欠なツールの1つです。