PHPのarray_merge_recursive()関数とは?使い方とarray_merge()との違いを解説
PHPのarray_merge_recursive()関数は、1つ以上の配列を再帰的に結合し、1つの配列を作成するための関数です。
この関数とarray_merge()の最大の違いは、複数の配列に同じキーが存在する場合の挙動にあります。array_merge_recursive()では、同じキーを持つ値が1つの配列としてまとめられるのに対し、array_merge()の場合は後から渡された値で上書きされ、最後の値のみが残ります。
構文
array_merge_recursive(arr1, arr2, arr3, …)
パラメータ
arr1 − 結合の基準となる最初の配列
arr2 − 結合対象となる別の配列
arr3 − 結合対象となる別の配列(必要に応じて複数指定可能)
戻り値
array_merge_recursive()関数は、パラメータとして渡されたすべての配列の要素を結合した結果の配列を返します。
次の例では、2番目の配列に1番目と重複するキー「q」が含まれています。この場合、array_merge_recursive()関数は重複したキーの値を1つの配列としてまとめて返します。
サンプルコード
<?php
$arr1 = array("p"=>"one","q"=>"two");
$arr2 = array("q"=>"three","r"=>"four");
print_r(array_merge_recursive($arr1,$arr2));
?>
実行結果
Array
(
[p] => one
[q] => Array
(
[0] => two
[1] => three
)
[r] => four
)
実行結果を見ると、キー「q」に対応する値「two」と「three」が配列として格納されていることがわかります。このように、多次元データや設定ファイルのマージなど、既存の値を保持しながら配列を統合したい場面でarray_merge_recursive()は非常に便利です。
-
PHPのarray_merge_recursive()関数とは?使い方とarray_merge()との違いを解説
PHPのarray_merge_recursive()関数は、1つ以上の配列を再帰的に結合し、1つの配列を作成するための関数です。 この関数とarray_merge()の最大の違いは、複数の配列に同じキーが存在する場合の挙動にあります。array_merge_recursive()では、同じキーを持つ値が1つの配列としてまとめられるのに対し、array_merge()の場合は後から渡された値で上書きされ、最後の値のみが残ります。 構文 array_merge_recursive(arr1, arr2, arr3, …) パラメータ arr1 − 結合の基準となる最初の配列 a
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に