• PHP

array_mergeの使い方と実務で役立つ使用例まとめ

array_merge()複数の配列を結合してひとつの配列を作る関数 です。
また、同じキーがある場合は「後から渡した配列で上書き」されます。

array_merge() の基本構文

まずは in_array() の基本構文から。詳細はPHP公式ドキュメントをご確認ください。

array array_merge(array ...$arrays)

特徴:

  • 同じキーがあった場合、後から渡された配列で上書きされる
  • 数値キーの場合は再付番(0, 1, 2...に振り直し)
  • 連想配列を扱う場合によく使われる

基本例:

$a = ['name' => 'Taro', 'age' => 20];
$b = ['age' => 25, 'city' => 'Tokyo'];

$result = array_merge($a, $b);
// => ['name' => 'Taro', 'age' => 25, 'city' => 'Tokyo']

上記のように、ageが$aにも$bにもあるが、$bで上書きされています

実務的な使用例

ここからは、Laravelなどの業務系アプリの開発現場で、実際にarray_merge()が登場する典型的な場面を紹介します。

入力フォームで追加データをまとめる

たとえばユーザー登録フォームのデータに、プログラム側で自動的に追加したい値(作成日時など)をまとめたいとき。

$input = [
    'name' => 'Hanako',
    'email' => 'hanako@example.com',
];

$systemData = [
    'created_at' => date('Y-m-d H:i:s'),
];

$userData = array_merge($input, $systemData);

print_r($userData);

// ['name' => 'Hanako', 'email' => 'hanako@example.com', 'created_at' => '2025-11-04 10:00:00']

🟩 ポイント:
フォーム入力データと自動生成データをまとめるのに便利。

検索条件をまとめる

たとえば商品検索で「公開中の商品だけ」を常に条件に含めたい場合。

$defaultCondition = ['status' => 'public'];
$userCondition = ['category' => 'book'];

$searchCondition = array_merge($defaultCondition, $userCondition);

// 結果: ['status' => 'public', 'category' => 'book']

🟩 ポイント:
「共通条件」+「ユーザー指定条件」をまとめたい時にぴったり。

設定値を上書きする

アプリの設定を「デフォルト値」+「環境ごとの設定」で統合できます。

$defaultConfig = [
    'timeout' => 30,
    'language' => 'ja',
];

$localConfig = [
    'timeout' => 10,
];

$config = array_merge($defaultConfig, $localConfig);

// ['timeout' => 10, 'language' => 'ja']

🟩 ポイント:
環境ごとに一部だけ設定を変えたいときに使える。

APIレスポンスにメッセージを追加する

APIやAjaxのレスポンスを作るとき、元のデータに「成功メッセージ」などを追加できます。

$response = ['data' => ['id' => 1, 'title' => 'News']];
$message = ['message' => 'データ取得に成功しました'];

$result = array_merge($response, $message);

print_r($result);

// ['data' => ['id' => 1, 'title' => 'News'], 'message' => 'データ取得に成功しました']

🟩 ポイント:
返すデータを1つにまとめる時に便利。

よく一緒に使われる関数

関数内容使用例
array_filter()空の値を取り除くarray_merge($defaults, array_filter($input))
array_replace()同じキーを上書きする(数値キー保持)array_replace($base, $override)
array_diff_key()特定のキーを除外するarray_merge($base, array_diff_key($input, ['id' => true]))

まとめ

  • array_merge() は「配列を1つにまとめる」便利な関数
  • 同じキーはあとに書いた配列で上書きされる