複数の配列を結合して1つにまとめるには、array_merge関数を使う方法と、配列結合演算子「+」を使う方法があります。
主な違いは、同じ名前の文字列インデックスを上書きするかどうかです。array_merge関数では、既存の要素を上書きします。次の例では、重複するインデックス「t」の「東京」が「東京都」に置き換わります。
1 2 3 4 5 | <?php $ar1 = array ( "t" => "東京" , "c" => "千葉県" ); $ar2 = array ( "t" => "東京都" , "k" => "神奈川県" ); print_r( array_merge ( $ar1 , $ar2 )); ?> |

array_merge関数による配列の結合
配列結合演算子「+」では、既存要素を上書きしません。重複するインデックス「t」の値は「東京」のままです。
1 2 3 4 5 | <?php $ar1 = array ( "t" => "東京" , "c" => "千葉県" ); $ar2 = array ( "t" => "東京都" , "k" => "神奈川県" ); print_r( $ar1 + $ar2 ); ?> |

配列結合演算子「+」による配列の結合
2つの違いを利用して、既存要素を上書きするかどうかを指定できるユーザー定義関数を作成することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $ar1 = array ( "t" => "東京" , "c" => "千葉県" ); $ar2 = array ( "t" => "東京都" , "k" => "神奈川県" ); // 既存要素を上書きする $ar3 = my_array_merge( $ar1 , $ar2 , true); print_r( $ar3 ); // 既存要素を上書きしない $ar3 = my_array_merge( $ar1 , $ar2 , false); print_r( $ar3 ); // 上書き指定が可能な配列結合関数 function my_array_merge( $ar1 , $ar2 , $overwrite = false) { if ( $overwrite ) { $temp = array_merge ( $ar1 , $ar2 ); // 既存要素を上書き } else { $temp = $ar1 + $ar2 ; // 既存要素を上書きしない } return $temp ; } ?> |

配列の結合