ITコラム

PHP 配列 結合

PHP

2019.02.27

PHP【 配列 】配列の結合

複数の配列を結合することをマージするともいいます。
今回は PHP で配列をマージする方法を紹介します。

配列についてはこちらの記事もご参照下さい。

PHP【 配列 】複数の値を保持するデータ構造
PHP【 配列 】配列にデータを追加
PHP【 配列 】配列からデータを削除
PHP【 配列 】count で要素数を取得
PHP【 配列 】配列のソート
PHP【 連想配列 】キーでデータを特定
PHP【 多次元配列 】配列の中に配列
PHP【 配列 】配列内のデータ検索
PHP【 配列 】要素を比較
PHP【 配列 】配列の結合(本ページ)
PHP【 配列 】in_array で値の存在チェック
PHP【 配列 】array_map で一括処理
PHP【 配列 】キーを取得
PHP【 配列 】array_filter でフィルター
PHP【 配列 】array_column で同一キーの値を取得
PHP【 配列 】foreach でループ処理
PHP【 配列 】array_unique で重複した値を削除
PHP【 配列 】便利な関数

 
尚、本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方

最終更新日:2019年2月27日

目次

1.加算演算子( + )で結合
2.array_merge で結合
3.array_merge_recursive で結合
 

1.加算演算子( + )で結合

 
加算演算子( + )を使用して配列を結合すると、先の配列に無いインデックス番号( 又は キー )の要素のみが順次マージされる結果となります。

下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<pre>
<?php

  $ary1 = array("red", "blue");
  $ary2 = array("pink", "gray", "green");

  $val = $ary1 + $ary2;

  print_r($val);

?>
</pre>

上のサンプルの「 $ary1 + $ary2 」では、$ary1 と、$ary1 には存在せず $ary2 に存在するインデックス番号の要素とがマージされて、上記の表示結果となります。

変数( 上のサンプルでは $val )を介さず、「 print_r($ary1 + $ary2); 」としても同じ結果が得られます。

print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
 
 

連想配列を + で結合

連想配列を加算演算子( + )で結合すると、重複のキーがある場合は 後の配列の要素は結合されません。

<pre>
<?php

  $ary1 = array("R" => "red", "B" => "blue", "G" => "green");
  $ary2 = array("P" => "pink", "G" => "gray");

  $val = $ary1 + $ary2;

  print_r($val);

?>
</pre>

重複キーである「 G 」の $ary2 内の要素は結合されず、上のような表示となります。

▲目次へ戻る

 

2.array_merge で結合

 
array_merge 関数は、複数の配列の要素をマージする関数です。

この関数を使用して配列を結合すると、加算演算子( + )で結合した場合と違って 一般的に意図される結合結果を得ることができます。

array_merge 関数は、次のように記述して使用します。

array_merge ( $array1 , $array2 [ , $array3 , ・・・ ]) ;

 
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<pre>
<?php

  $ary1 = array("red", "blue", "green");
  $ary2 = array("pink", "gray", "red");

  $val = array_merge($ary1, $ary2);

  print_r($val);

?>
</pre>

$ary1 の要素の後に $ary2 の要素がマージされて、インデックス番号が割り当てられています。

変数( 上のサンプルでは $val )を介さず、「 print_r(array_merge($ary1, $ary2)); 」として array_merge 関数の戻り値を直接出力しても同じ結果が得られます。

print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。
 
 

連想配列を array_merge で結合

array_merge 関数を使用して連想配列をマージすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<pre>
<?php

  $ary1 = array("R" => "red", "B" => "blue", "G" => "green");
  $ary2 = array("P" => "pink", "G" => "gray", "E" => "red");

  $val = array_merge_recursive($ary1, $ary2);

  print_r($val);

?>
</pre>

連想配列をマージする際に配列間で同一のキーを使用している場合は、後の配列の値で上書きされます。

▲目次へ戻る

 

3.array_merge_recursive で結合

 
array_merge_recursive 関数は、array_merge 関数と同様に 複数の配列の要素をマージする関数ですが、重複キーが存在する連想配列間でも、array_merge 関数と違って 全要素をマージすることができます。

記述方法は array_merge 関数と同様です。

array_merge_recursive ( $array1 , $array2 [ , $array3 , ・・・ ]) ;

インデックス番号が割り当てられる通常配列の結合については、array_merge 関数を使用した場合と同様に、先の配列の要素に後の配列要素が追加されて、新たにインデックス番号が割り当てられます。

 

連想配列を array_merge_recursive で結合

array_merge_recursive 関数を使用して連想配列をマージすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)

<pre>
<?php

  $ary1 = array("R" => "red", "B" => "blue", "G" => "green");
  $ary2 = array("P" => "pink", "G" => "gray", "E" => "red");

  $val = array_merge_recursive($ary1, $ary2);

  print_r($val);

?>
</pre>

配列間で同一のキーを使用している場合は、そのキーに紐付く値を全て格納した配列が要素となります。

上のサンプルで $val 内の値「 green 」は「 $val[“G”][0] 」と記述して特定します。

変数( 上のサンプルでは $val )を介さず、「 print_r(array_merge_recursive($ary1, $ary2)); 」として array_merge_recursive 関数の戻り値を直接出力しても同じ結果が得られます。

print_r 関数や <pre> ~ </pre> についてはprint_r で出力をご参照下さい。

▲目次へ戻る

SHARE

最新記事

IMG_004

卒業生インタビュー

2019.08.20

【卒業生の声:渡邉さん】宮城の大学とプログラマカレッジへ通学を両立!限られた時間を有効活用し、希望するWEB系の会社へ内定。

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 某WEB系会社 プログラマカレッジ卒業生の渡邉さんにお話しをお伺いしました! 目次 新卒採用の切符を捨て、アイデアを形にできる仕事を目指す 質問が […]

続きを見る

DSC_3661

卒業生インタビュー

2019.08.16

【卒業生の声:前田さん】大学中退の未経験エンジニアが4社から内定獲得!初めての就活を成功させた秘訣とは?

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 株式会社リヴァンプ プログラマカレッジ卒業生のマエダさん(23歳)にお話しをお伺いしました! 目次 勉強に興味が持てなくて大学中退 就職できるか不 […]

続きを見る

DSC_0077

卒業生インタビュー

2019.08.08

【卒業生の声:オチアイさん】高校教師からプログラマーへ転身!最初の2ヶ月は理解に苦しむ日々。楽しめるまでに至った秘訣とは?

受講スクール プログラマカレッジ 受講期間 3ヶ月間 料金 無料 就職先 プライムソリューションズ株式会社 プログラマカレッジ卒業生のオチアイさんにお話しをお伺いしました! 目次 大学院卒業後は高校教師に そこから思い切 […]

続きを見る

無料相談する

INTERNOUS,inc. All rights reserved.