今回はPHPで配列に要素を使いする方法について解説したいと思います。
PHPで配列に追加する方法はいくつか用意されていて、配列の最後に追加するのにはarray_push関数やarray_merge関数を使います。また、+演算子や[]記号を使うこともできます。一方で配列の先頭に追加する場合はarray_unshift関数を使います。それぞれに特徴があるのでしっかり学んで正しく使っていきましょう。
目次
配列の最後に追加する方法
まずは配列の最後に要素を追加する方法について述べていきたいと思います。4つの方法がありそれぞれに特徴があるのでしっかり覚えてください。
array_push関数による追加
通常の配列:◯ 連想配列:×
array_push関数を使うことで配列の最後に要素を追加することができます。但し、通常の配列のみで連想配列には使えません。
以下の例を見てみましょう。4つの県名が格納された配列$arrayに鹿児島県、沖縄県の2つの要素を追加している例です。
1 2 3 4 |
$array = array("東京都", "大阪府", "北海道", "兵庫県"); array_push($array, "鹿児島県", "沖縄県"); print_r($array); |
出力結果は以下の通りです。2つの要素が追加されました。
1 2 3 4 5 6 7 8 9 |
Array ( [0] => 東京都 [1] => 大阪府 [2] => 北海道 [3] => 兵庫県 [4] => 鹿児島県 [5] => 沖縄県 ) |
array_merge関数による追加
通常の配列:◯ 連想配列:◯
連想配列に要素を追加する方法の1つにarray_merge関数があります。通常の配列でも使用できるので便利な関数です。
以下が4つの県名が格納された配列$arrayに鹿児島県、沖縄県の2つの要素を追加している例です。
1 2 3 4 |
$array = array("東京都"=>"新宿区", "大阪府"=>"大阪市", "北海道"=>"札幌市", "兵庫県"=>"神戸市"); $array = array_merge($array, array("鹿児島県"=>"鹿児島市", "沖縄県"=>"那覇市")); print_r($array); |
出力結果は以下の通りです。最後に2つの要素が追加されました。
1 2 3 4 5 6 7 8 9 |
Array ( [東京都] => 新宿区 [大阪府] => 大阪市 [北海道] => 札幌市 [兵庫県] => 神戸市 [鹿児島県] => 鹿児島市 [沖縄県] => 那覇市 ) |
+演算子による追加
通常の配列:× 連想配列:◯
連想配列の場合は+演算子で要素追加することができます。こちらは連想配列のみで通常の配列では使うことはできません。
以下が使用例です。
1 2 3 4 |
$array1 = array("東京都"=>"新宿区", "大阪府"=>"大阪市", "北海道"=>"札幌市", "兵庫県"=>"神戸市"); $array2 = array("鹿児島県"=>"鹿児島市", "沖縄県"=>"那覇市"); $array = $array1 + $array2; print_r($array); |
以下の通り追加することができました。
1 2 3 4 5 6 7 8 9 |
Array ( [東京都] => 新宿区 [大阪府] => 大阪市 [北海道] => 札幌市 [兵庫県] => 神戸市 [鹿児島県] => 鹿児島市 [沖縄県] => 那覇市 ) |
[ ]による追加
通常の配列:◯ 連想配列:◯
[ ](角カッコ)を使うことで配列の最後に要素を追加することもできます。今までの例では同時に複数の要素を追加できていましたが、[ ]で追加できる要素数は1つだけです。通常の配列と連想配列どちらも使用できますが、使い方は少し異なるのでそれぞれの例を挙げてみましょう。まずは通常配列の追加例です。使い方は単純で$array[]にイコールで要素を追加するのみです。
1 2 3 |
$array = array("東京都", "大阪府", "北海道", "兵庫県"); $array[] = "沖縄県"; print_r($array); |
結果はご覧の通りです。
1 2 3 4 5 6 7 8 |
Array ( [0] => 東京都 [1] => 大阪府 [2] => 北海道 [3] => 兵庫県 [4] => 沖縄県 ) |
連想配列の追加方法ですが、[ ]内に新しいキーを指定しイコールで値を追加することで可能になります。すでに存在するキーを指定すると上書きしてしまうので注意しましょう。
1 2 3 |
$array = array("東京都"=>"新宿区", "大阪府"=>"大阪市", "北海道"=>"札幌市", "兵庫県"=>"神戸市"); $array["沖縄県"] = "那覇市"; print_r($array); |
ご覧の通り追加することができました。
1 2 3 4 5 6 7 8 |
Array ( [東京都] => 新宿区 [大阪府] => 大阪市 [北海道] => 札幌市 [兵庫県] => 神戸市 [沖縄県] => 那覇市 ) |
配列の先頭に追加する方法
今度は配列の先頭に追加する方法について解説していきたいと思います。
array_unshift関数による追加
通常の配列:◯ 連想配列:×
array_unshift関数を使うことで配列の先頭に要素を追加することができます。残念ながら連想配列には使うことができません。
1 2 3 |
$array = array("大阪府", "北海道", "兵庫県"); array_unshift($array, "東京都"); print_r($array); |
結果はご覧の通り先頭に”東京都”という要素が追加されました。
1 2 3 4 5 6 7 |
Array ( [0] => 東京都 [1] => 大阪府 [2] => 北海道 [3] => 兵庫県 ) |
連想配列で先頭に追加するためには?
連想配列で先頭に追加するためにはどうすれば良いのでしょうか。これは上で述べてきたarray_merge関数と+演算子で可能にできます。そもそもarray_merge関数も+演算子も要素の追加というよりも配列同士の連結のためのものなので、追加する側を先に持ってくれば先頭に追加されるわけですね。
以下の例ではどちらも配列の先頭に”東京都”=>”新宿区”という要素を追加してくれる例です。
1 2 3 4 5 6 7 8 9 |
//array_merge関数の例 $array = array("大阪府"=>"大阪市", "北海道"=>"札幌市", "兵庫県"=>"神戸市"); $array = array_merge(array("東京都"=>"新宿区"), $array); print_r($array); //+演算子の例 $array = array("大阪府"=>"大阪市", "北海道"=>"札幌市", "兵庫県"=>"神戸市"); $array = array("東京都"=>"新宿区") + $array; print_r($array); |
いずれも以下のような出力結果となります。
1 2 3 4 5 6 7 |
Array ( [東京都] => 新宿区 [大阪府] => 大阪市 [北海道] => 札幌市 [兵庫県] => 神戸市 ) |
まとめ
いかがでしょうか。今回はPHPで配列に要素を使いする方法について解説しました。
PHPでは配列へ要素を追加する方法が複数用意されていていてそれぞれに特徴があることがおわかりいただけたかと思います。しっかり学んでいただき用途に応じて使い分けして効率的なプログラムを目指していきましょう。