オーダーメイドコース
icon
icon

PHPで配列に要素を追加する方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPで配列に要素を追加する方法について解説しています。配列に要素を追加する方法には、+演算子や[]記号を使う方法や、array_push関数、array_merge関数、array_unshift関数を使う方法があります。それぞれの特徴をみていきましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、PHPで配列に要素を追加する方法について解説します。

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPで配列に要素を追加する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

配列に要素を追加する方法一覧

  • +演算子を使う
  • []を使う
  • array_push関数を使う
  • array_merge関数を使う
  • array_unshift関数を使う

では、それぞれの方法について詳しく見ていきます。

実際に書いてみよう

+演算子を使う

<?php
 $array1 = [1 => "one", 2 => "two", 3 => "three", 4 => "four"];
 $array2 = [5 => "five", 6 => "six"];
 $array = $array1 + $array2;
 print_r($array);
?>

結果は以下のようになります。

Array
(
 [1] => one
 [2] => two
 [3] => three
 [4] => four
 [5] => five
)

連想配列であれば+演算子で配列に要素を追加することが可能です。

 

[]を使う

<?php
$array = ["one", "two", "three", "four"];
 $array[] = "five";
 print_r($array);
?>

こちらの実行結果は以下のようになります。

Array
(
 [0] => one
 [1] => two
 [2] => three
 [3] => four
 [4] => five
)

追加する要素が1つだけ(1つずつ)であればこの書き方でも問題なく配列に要素を追加することができます。

 

array_push関数を使う

<?php
$array = ["one", "two", "three"];
 array_push($array, "four", "five");
 print_r($array);
?>

実行結果は以下です。

Array
(
 [0] => one
 [1] => two
 [2] => three
 [3] => four
 [4] => five
)

array_push関数は、array_push関数の第2引数以降に値をいくつでも指定できるので、一度の実行で複数の値を配列に追加することが可能です。

ただし、連想配列ではarray_push関数は使えないので添字配列の時のみ使用可能です。

 

array_merge関数を使う

<?php
$array1 = [1 => "one", 2 => "two", 3 => "three", 4 => "four"];
 $array2 = [5 => "five", 6=> "six"];
 $array = array_merge($array1,$array2);
 print_r($array);
?>

実行結果は以下です。

Array
(
 [0] => one
 [1] => two
 [2] => three
 [3] => four
 [4] => five
 [5] => six
)

こちらでも配列に要素を追加することが可能ですが、+演算子を使ったときと実行方法が似ていますね。

+演算子で配列に要素を追加する時とarray_merge関数を使うときの違いはあるのでしょうか?以下のコードで実験してみます。

<?php
$array1 = [1 => "one"];
 $array2 = [1 => "one"];
 $array_merge = array_merge($array1,$array2);
 $plus = $array1 + $array2;
 print_r($array_merge);
 print_r(PHP_EOL);
 print_r($plus);
?>

このコードの実行結果は以下になります。

Array
(
 [0] => one
 [1] => one
)

Array
(
    [1] => one
)

+演算子を使ったときは、同じキーの物があれば値が上書きされていて、array_merge関数を使ったときは振り直しが行われていますね。

同じキーがあるときに+演算子を使ってしまうと望んだ結果にならない可能性があるので、注意して使いましょう。

 

array_unshift関数を使う

<?php
 $stack =["two", "three", "four"]; 
 array_unshift($stack, "one"); 
 print_r($stack);
?>

実行結果は以下。

Array
(
 [0] => one
 [1] => two
 [2] => three
 [3] => four
)

あまり使われない方法だとは思いますが、先頭に値を追加するなら、array_unshift関数も使えます。先頭に値が追加されていることが確認できますね。

いくつか配列に値を追加する方法を説明しましたが、全て似ているようで少しずつ挙動が違っている部分がありますので、しっかり理解して使うようにしましょう!

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。