複数の配列を一つの配列に合成する
![]()
array_merge関数は、a複数の配列をマージして一つの配列にまとめる働きをします。
配列の添字(インデックス)は保持されず、前の配列の後に次の配列の要素が追加されますが、複数の配列に同一の文字列キーがある場合は、前の配列の値が後の配列の値で上書きされてしまいますので注意が必要です。
同一の文字列キーを持つ要素を上書きしたくない場合、array_merge_recursive関数を使います、array_merge_recursive関数では、同一の文字列キーをもつ要素があった場合でも値を上書きせず、多次元配列としてそれぞれの値を保持します。
たとえば、次のよな配列をマージしてみます。array_merge関数を使うと、文字列キー「x」を持つ要素が上書きされてしまいます。
他方array_merge_recursive関数を使うと、次のように多次元配列になります。
また、配列の添字(インデックス)を保持したまま配列をマージしたい場合は、「+」演算子を使います
配列のマージについて表にまとめておきますので、参考にしてください
配列のマージ 添字(インデックス)の場合 文字列キーの場合 array_merge関数 前の配列の後ろに追加 後の配列の値で上書き array_merge_recursive関数 前の配列の後ろに追加 多次元配列としてすべての値を保持 +演算子 前の配列の値を保持 前の配列の値を保持