- 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つにまとめる」便利な関数- 同じキーはあとに書いた配列で上書きされる

