現在の位置: ホーム> 最新記事一覧> [Array_replaceと複数の配列をマージする方法は? PHP実践スキルの詳細な説明

[Array_replaceと複数の配列をマージする方法は? PHP実践スキルの詳細な説明

gitbox 2025-09-10

Array_replaceと複数の配列をマージする方法は? PHP実践スキルの詳細な説明

PHPプログラミングでは、アレイ操作は非常に一般的なタスクです。通常、配列をマージしたり、配列の要素を交換したり、複数の配列の要素をマージする必要があります。この時点で、 array_replace()関数は非常に便利なツールです。配列内の値を置き換えるだけでなく、複数の数値を組み合わせます。

この記事では、array_replace()関数の使用法を詳細に紹介して、PHPで複数の配列をマージする方法をよりよく理解するのに役立ちます。

array_replaceとは何ですか?

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">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> =&gt; </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> =&gt; </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> =&gt; </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">?&gt;</span></span><span>
</span></span>

出力結果:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [a] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [b] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [c] =&gt; </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">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> =&gt; </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> =&gt; </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> =&gt; </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">"d"</span></span><span> =&gt; </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">?&gt;</span></span><span>
</span></span>

出力結果:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [a] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [b] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [c] =&gt; </span><span><span class="hljs-number">4</span></span><span>
    [d] =&gt; </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>

この例では、 $ array2の値は$ array1の対応するキー( 'b' )を置き換えますが、 $ array3のキー値ペアは結果アレイに直接追加されます。

array_replacearray_mergeの違い

array_replace()は複数の配列をマージするために使用できますが、 array_merge()関数とは多少異なります。

  1. array_replace() :キーに従って元の配列の値を置き換えます。つまり、同じキーがある場合、その後の配列は、以前の配列の対応するキーを上書きします。

  2. array_merge() :キーが同じかどうかに関係なく、配列を組み合わせます。インデックス付きアレイの場合、それはリネックスします。連想配列の場合、元のキーを保持します。

例えば:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> =&gt; </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> =&gt; </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> =&gt; </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">?&gt;</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; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [b] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [c] =&gt; </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つです。