PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのarray_merge()関数とは?使い方とキー重複時の挙動を解説

array_merge()関数とは

PHPのarray_merge()関数は、1つ以上の配列を受け取り、それらをすべて結合した1つの配列を返す関数です。引数として渡された各配列の要素が順番にマージされます。

基本構文

array_merge(arr1, arr2, arr3, …)

パラメータ

  • arr1 − 結合元となる最初の配列

  • arr2 − 結合する別の配列

  • arr3 − 結合する別の配列(必要に応じていくつでも指定可能)

戻り値

引数に渡されたすべての配列の要素を結合した配列を返します。

キーが重複した場合の注意点

2つ以上の配列に同じ文字列キーが存在する場合は、後に渡された配列の値が前の値を上書きします。一方、数値キーの場合は上書きされず、キーが振り直されたうえで配列の末尾に追加される点に注意しましょう。

使用例:文字列キーが重複する場合

次の例では、2つの配列を結合します。2番目の配列には1番目の配列と同じキー「p」が含まれており、この場合、後の値が前の値を上書きします。

<?php
   $arr1 = array("p"=>"red","q"=>"green");
   $arr2 = array("p"=>"blue","r"=>"yellow");
   print_r(array_merge($arr1,$arr2));
?>

実行結果

Array
(
   [p] => blue
   [q] => green
   [r] => yellow
)

キー「p」の値が「red」から「blue」に上書きされ、「q」と「r」の要素はそのまま保持されていることがわかります。

補足:数値キーの場合の挙動

文字列キーと異なり、数値キーの要素は上書きされません。代わりに、0から始まる連番のキーが振り直され、配列の末尾に追加されます。

<?php
   $arr1 = array("apple", "banana");
   $arr2 = array("cherry", "date");
   print_r(array_merge($arr1,$arr2));
?>
Array
(
   [0] => apple
   [1] => banana
   [2] => cherry
   [3] => date
)

なお、PHP 7.4以降では引数なしでarray_merge()を呼び出すことも可能で、その場合は空の配列が返されます。配列を柔軟に結合したい場面で非常に便利な関数なので、ぜひ活用してください。

  1. PHPのarray_merge()関数とは?使い方とキー重複時の挙動を解説

    array_merge()関数とは PHPのarray_merge()関数は、1つ以上の配列を受け取り、それらをすべて結合した1つの配列を返す関数です。引数として渡された各配列の要素が順番にマージされます。 基本構文 array_merge(arr1, arr2, arr3, …) パラメータ arr1 − 結合元となる最初の配列 arr2 − 結合する別の配列 arr3 − 結合する別の配列(必要に応じていくつでも指定可能) 戻り値 引数に渡されたすべての配列の要素を結合した配列を返します。 キーが重複した場合の注意点 2つ以上の配列に同じ文字列キーが存在する場合は、後に渡された配列の値

  2. PHPのarray()関数とは?配列の作成方法をわかりやすく解説

    PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に