【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【PHP】複数の配列・連想配列を結合する方法

本記事では、PHPで複数の配列・連想配列を結合する方法について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/04/16 01:40時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

array_merge関数の使い方

複数の配列・連想配列を結合したい場合は、array_merge関数を使用します。基本的な使い方は以下のとおりです。

$result = array_merge(...$arrays);
構文解説
  • $result:結合された新しい配列が返される
  • …$arrays:結合したい配列を(,)区切りで指定する

array_merge関数を使用して、複数の配列・連想配列を結合するサンプルコードを用意したので、動作確認してみましょう。

<?php
$hobbyArr1 = ['soccer', 'reading'];
$hobbyArr2 = ['soccer', 'fishing'];

$result = array_merge($hobbyArr1, $hobbyArr2);
print_r($result); // Array ( [0] => soccer [1] => reading [2] => soccer [3] => fishing )

配列の変数$hobbyArr1と$hobbyArr2は「soccer」が重複しています。このような場合array_merge関数は重複したものを削除せず結合を行います。

続いて、連想配列でarray_merge関数を使用した時の動作確認をしてみましょう。

<?php
$personArr1 = ['name' => 'Ken', 'age' => 20, 'hobby' => 'reading'];
$personArr2 = ['gender' => 'male', 'hobby' => 'soccer'];

$result = array_merge($personArr1, $personArr2);
print_r($result); // Array ( [name] => Ken [age] => 20 [hobby] => soccer [gender] => male )

連想配列の変数$personArr1と$personArr2はkeyの「hobby」が重複しています。配列の場合は重複したものを削除せず結合を行いましたが、連想配列の場合は後から出現した値に上書きします。

array_merge_recursive関数の使い方

もし、連想配列の結合で上書きするのではなく配列を生成しどちらの値も残しておきたい場合はarray_merge_recursive関数を使用します。使い方はarray_merge関数と同じです。

<?php
$personArr1 = ['name' => 'Ken', 'age' => 20, 'hobby' => 'reading'];
$personArr2 = ['gender' => 'male', 'hobby' => 'soccer'];

$result = array_merge_recursive($personArr1, $personArr2);
print_r($result); // Array ( [name] => Ken [age] => 20 [hobby] => Array ( [0] => reading [1] => soccer ) [gender] => male )

hobbyの値が配列になり、array_merge関数で削除された「reading」が残ったまま連想配列の結合がされたことが確認できます。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次