【PHP】配列についてとマージ方法について
◇はじめに
本記事ではPHPの配列についてと配列のマージ関数「array_merge()」について解説していきたいと思います。この記事を是非参考にしていただければ幸いです。
◇「配列」とは
◇概要
文字列や数値といった複数の値を格納できるもののことです。単純な変数はひとつの値しか格納することができませんが、配列を利用することで複数の値をまとめて取り扱うことができるので大変便利です。
◇配列の書き方
配列の書式は以下の通りです。
$配列名 = array(値1.値2,…);
使用例↓
$month = array('January','February','March','April');
上の"January"や"February"のようなひとつひとつは配列の「要素」と呼ばれます。配列が定義されれば、左に記述された要素から順番に0からはじまる「インデックス」番号が付与されます。ここでは「1」からではなく「0」から番号が付けられるという事が注意点です。
◇配列の要素の取得方法
要素の取得は以下の通りです。
$配列名[インデックス番号];
使用例↓
$month = array('January','February','March','April');
echo $month[1];
//実行の結果、ブラウザに「February」と表示される
◇「連想配列」とは
◇概要
配列でのインデックス番号の代わりに、それぞれ名前(キー)を指定することができる配列の事です。
◇連想配列の書き方
連想配列の書式は以下の通りです。
$連想配列名 = array('キー名1'=>値1,'キー名2'=>値2,…);
使用例↓
$month = array(
'January'=>'1月',
'February'=>'2月',
'March'=>'3月',
'April'=>'4月'
);
◇連想配列の要素の取得方法
要素の取得は以下の通りです。
$連想配列名['キー名'];
使用例↓
$month = array(
'January'=>'1月',
'February'=>'2月',
'March'=>'3月',
'April'=>'4月'
);
echo $month['March'];
//実行の結果、ブラウザに「3月」と表示される
◇配列のマージについて
◇マージとは?
英語の「merge」で、”合併する”や”併合する””統合する”といった意味を持ちます。IT業界では何かしらの複数のデータやプログラムなどをひとつにまとめるような時に「マージ」というような言葉を使用します。
それではPHPの配列におけるマージの方法を説明していきたいと思います。
マージの方法はいくつかありますが、今回はその中でも「array_marge()を使う方法」をご紹介します。
◇array_marge()関数の使い方
書式は以下の通りです。
array_merge(配列1,配列2,…);
カッコ()内の配列が左から順に融合され、出力されます。元の配列が上書きされるということではないため、既存または新しい配列などに代入する必要があります。
■通常の配列の場合の使用例
//対象配列
$month1 = array('January','February','March','April');
$month2 = array('May','June','July','August');
//array_merge()でマージ
$month3 = array_merge($month1,$month2);
//配列情報の取得
print_r ($month3);
実行結果↓
Array ( [0] => January [1] => February [2] => March [3] => April [4] => May [5] => June [6] => July [7] => August )
1つ目の配列に続き、2つ目の配列の要素が追加されており、インデックス番号も続くように更新されていることが分かります。
■連想配列の場合の使用例
//対象配列
$month1 = array(
'January'=>'1月',
'February'=>'2月',
'March'=>'3月',
'April'=>'4月'
);
$month2 = array(
'May'=>'5月',
'June'=>'6月',
'July'=>'7月',
'August'=>'8月'
);
//array_merge()でマージ
$month3 = array_merge($month1,$month2);
//配列情報の取得
print_r ($month3);
実行結果↓
Array ( [January] => 1月 [February] => 2月 [March] => 3月 [April] => 4月 [May] => 5月 [June] => 6月 [July] => 7月 [August] => 8月 )
通常の配列と同じく一つ目の配列に続くかたちで繋がっています。連想配列に関しては通常配列と違い、値と一緒にキーもそのまま残っていることが分かります。 しかし例外としてキーが重複する場合、後ろにある値が上書きされます。
//対象配列
$month1 = array(
'January'=>'1月',
'February'=>'2月',
'March'=>'3月',
'April'=>'4月'
);
$month2 = array(
'January'=>'いちがつ',
'February'=>'にがつ',
'March'=>'さんがつ',
'April'=>'しがつ',
'May'=>'ごがつ',
'June'=>'ろくがつ',
);
//array_merge()でマージ
$month3 = array_merge($month1,$month2);
//配列情報の取得
print_r ($month3);
実行結果↓
Array ( [January] => いちがつ [February] => にがつ [March] => さんがつ [April] => しがつ [May] => ごがつ [June] => ろくがつ )
今回は最初の4つのキーが重複していたため、中の値が上書きされていることが分かります。
◇おわりに
いかがでしたでしょうか。
マージ関数には他にも「array_merge_recursive()」といったものもありますので、興味があれば是非調べてみてください。本記事が少しでもs南港になれば幸いです。最後まで読んでいただきありがとうございました。