【PHP入門】配列・連想配列に値を追加する方法まとめ

こんにちは!フリーエンジニアのヤマシタです。

配列はPHPに限らず、さまざまなプログラミング言語で必須の機能となります。

この記事では、

・[](角カッコ)で配列の値を追加する方法
・array_push関数で配列の値を追加する方法

という基本的な内容から、

・array_merge関数で配列を結合する方法
・array_unshiftで配列の先頭に値を追加する方法

などの応用的な使い方に関しても解説していきます。

今回はそんな配列の追加方法について、わかりやすく解説します!

配列に値を追加する方法

[](角カッコ)で値を追加する

配列に値を追加したい場合、簡単な方法として追加する配列に[](角カッコ)をつけて値を代入する方法があります。

書き方:

$配列[] = $値

以下に[](角カッコ)を使用して、配列に値を追加するサンプルを紹介します。

サンプルプログラム1

//配列を設定する
$fruits = ['apple', 'orange', 'melon'];
//値を追加する
$fruits[] = 'banana';
$fruits[] = 'pineapple';

print_r($fruits);


実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

サンプルで紹介しているように、[](角カッコ)を使用すれば簡単に配列に値を追加できることがわかりますね。

また、配列に重複した値を設定しても、値はそのまま配列に格納されます。

では連想配列に値を追加するとどうなるのでしょうか?

以下に連想配列に値を追加するサンプルを紹介します。

サンプルプログラム2

$fruits = [
            0 =>'apple',
            1 =>'orange',
            2 =>'melon',
          ];

//値を追加する
$fruits[] = 'banana';
$fruits[] = 'pineapple';

print_r($fruits);

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

上記のように連想配列でキーが数値の場合は、自動でインデックス番号がキーとして割り振られます。

キーが数値以外の添字などの場合は、値を追加すると0からのインデックス番号が割り振られます。

array_pushを使用する

array_push関数を使用することでも、配列に値を簡単に追加することができます。

array_push関数は以下のように記述します。

書き方:

array_push(追加先の配列名, 追加する値(, 追加する値・・・))


引数:

第一引数には追加先の配列名を指定します。
第一引数以降では追加する値を1つまたは複数指定します。

返り値:
指定した値を追加した配列の要素数を返します。

以下にarray_push関数を使用して、配列に値を追加するサンプルを紹介します。

サンプルプログラム1

//配列を設定する
$fruits = ['apple', 'orange', 'melon'];

//array_pushで配列の値を追加する
array_push($fruits, 'banana', 'pineapple');

print_r($fruits);

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

上記のサンプルのようにarray_pushで指定した値が、追加先の配列に追加されていることがわかりますね。

では連想配列に対してarray_push関数で値を追加するとどうなるのでしょうか?

以下にarray_push関数で連想配列に値を追加する方法を紹介します。

サンプルプログラム2

$fruits = [
            0 =>'apple',
            1 =>'orange',
            2 =>'melon',
          ];

//array_pushで配列の値を追加する
array_push($fruits, 'banana', 'pineapple');

print_r($fruits);

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

上記のように連想配列でキーが数値の場合は、角カッコで追加したときと同じく自動でインデックス番号がキーとして割り振られます。

キーが数値以外の添字などの場合も角カッコ同様、値を追加すると0からのインデックス番号が割り振られます。

配列の先頭に追加する(array_unshift)

array_unshift関数を使用すると、配列の先頭に要素を追加することができます。

array_unshift関数は以下のように記述します。

書き方:

array_unshift(追加先の配列名, 追加する値(, 追加する値・・・));

引数:
第一引数には追加先の配列名を指定します。
第一引数以降には追加する値を1つまたは複数指定します。

返り値:
指定した値を追加した配列の要素数を返します。

以下にarray_unshift関数を使用して、配列に値を追加するサンプルを紹介します。

サンプルプログラム1

//配列を設定する
$fruits = ['apple', 'orange', 'melon'];

//array_unshiftで配列の値を先頭に追加する
array_unshift($fruits, 'banana', 'pineapple');

print_r($fruits);


実行結果:

Array
(
    [0] => banana
    [1] => pineapple
    [2] => apple
    [3] => orange
    [4] => melon
)

上記のサンプルのようにarray_unshift関数で指定した値が配列の先頭に追加されていることがわかりますね。

では連想配列に対してarray_unshift関数で値を追加するとどうなるのでしょうか?

以下にarray_unshift関数で連想配列に値を追加する方法を紹介します。

サンプルプログラム2

//配列を設定する
$fruits = [
            0 =>'apple',
            1 =>'orange',
            2 =>'melon',
          ];

//array_unshiftで配列の値を先頭に追加する
array_unshift($fruits, 'banana', 'pineapple');

print_r($fruits);

実行結果:

Array
(
    [0] => banana
    [1] => pineapple
    [2] => applee
    [3] => orange
    [4] => melon
)

上記のように連想配列でキーが数値の場合は、インデックス番号が0から降り直されます。

連想配列のキーが添字の場合は、値を追加すると0からのインデックス番号が割り振られます。

配列を結合する(array_merge)

array_merge関数を使用すると、配列同士を結合することができます。

array_merge関数は以下のように記述します。

書き方:

array array_marge(追加先の配列名、追加する配列、(, 追加する配列・・・));

引数:
第一引数には最初の配列名を指定します。
第一引数以降には結合する配列名を1つまたは複数指定します。

返り値:
結合された配列を返します。

以下にarray_marge関数を使用して配列を結合するサンプルを紹介します。

サンプルプログラム1

//配列を設定する
$fruits1 = ['apple', 'orange', 'melon'];
$fruits2 = ['banana', 'pineapple'];

//array_mergeで配列同士を結合する
$fruits_merge = array_merge($fruits1, $fruits2);

print_r($fruits_merge);

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

上記サンプルのように第二引数以降で指定した配列が、第一引数で指定した配列の後ろに結合されていることがわかりますね。

array_merge関数を使用して、連想配列同士を結合するとどうなるのでしょうか?

以下に連想配列同士を結合するサンプルを紹介します。

サンプルプログラム2

//配列を設定する
$fruits1 = [
            1 =>'apple',
            2 =>'orange',
            3 =>'melon',
          ];

$fruits2 = [
            1 =>'banana',
            2 =>'pineapple',
          ];

//array_mergeで配列同士を結合する
$fruits_merge = array_merge($fruits1, $fruits2);

print_r($fruits_merge);

実行結果:

Array
(
    [0] => apple
    [1] => orange
    [2] => melon
    [3] => banana
    [4] => pineapple
)

上記のように連想配列でキーが数値の場合は、インデックス番号が0から降り直されます。

結合する配列のキーが添字でキーが重複していた場合は、結合する配列のキーの値に上書きされますので注意しましょう。

array_merge関数については、以下の記事でも詳細に解説していますので、ぜひ参考にしてくださいね!

【PHP入門】array_mergeで配列を簡単に結合する方法
更新日 : 2018年12月24日

配列についてもっと詳しく知りたい方へ

本記事で紹介した配列の追加・結合以外のさまざまな配列の使い方、

・配列の初期化
・配列をコピーする方法
・ループで要素を取得する方法
・配列の先頭の要素を取得する方法
・配列の要素が空か判定する方法
・配列を比較する方法
・配列の要素数を調べる方法

などについては以下の記事で詳しく解説していますので、ぜひ参考にしてくださいね!

まとめ

ここでは配列の追加・結合する方法について、

・[](角カッコ)で配列の値を追加する方法
・array_push関数で配列の値を追加する方法
・array_merge関数で配列を結合する方法
・array_unshiftで配列の先頭に値を追加する方法

などについて解説しました。

配列は値をまとめて管理するときによく使用しますので、この機会にぜひ覚えておきましょう。

もし、配列の追加方法を忘れてしまったら、この記事を思い出してくださいね!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部として、これまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。プログラミング初学者に向けてわかりやすく、ためになるコンテンツ作りを心がけています。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー