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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回は、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コースを提供しています。

PHPやフレームワークのLaravelを使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。