配列に新たな要素を追加する方法(PHP)


配列に新たな要素を追加する方法(PHP)

この記事ではPHPで配列を使う際、

  • 配列の先頭に要素を追加する方法
  • 配列の最後に要素を追加する方法
  • 配列の適当な位置に要素を追加する方法

の参考になればと思います。

配列の先頭に要素を追加する方法

こちらが配列の先頭に要素を追加する方法です。

  • array_unshift()

array_unshift()

array_unshift関数はphpのビルトイン関数で、
array_unshift(配列名, 追加したい要素)
で、配列の先頭に要素を追加することができます。

sample.php
$samples = [2, 3, 4];
array_unshift($samples, 1);
print_r($samples);

//出力結果
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

複数の要素を追加したい場合は、
array_unshift(配列名, 追加したい要素1, 追加したい要素2, 追加したい要素3....)
で複数の追加が可能です。

sample.php
$samples = [2, 3, 4];
array_unshift($samples, 0, 1);
print_r($samples);

//出力結果
Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
)

配列の最後に要素を追加する方法

こちらが配列の最後に要素を追加する方法です

  • array_push()

array_push()

array_push関数もphpのビルトイン関数で、
array_push(配列名, 追加したい要素)
で、配列の最後に要素を追加することができます。

sample.php
$samples = [2, 3, 4];
array_push($samples, 5);
print_r($samples);

//出力結果
Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
)

また、複数の要素を追加したい場合は、
array_unshiftと同様に
array_push(配列名, 追加したい要素1, 追加したい要素2, 追加したい要素3....)
で複数の追加が可能です。

sample.php
$samples = [2, 3, 4];
array_push($samples, 5, 6);
print_r($samples);

//出力結果
Array
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 6
)

配列の適当な位置に要素を追加する方法

こちらが配列の適当な位置に要素を追加する方法です

  • array_splice()

array_splice()

array_spliceもphpのビルトイン関数で、
array_splice(配列名, 追加したい場所, 0, 追加したい要素)
で指定した位置に追加したい要素を追加可能です。

sample.php
$samples = [1, 3, 5];
array_splice($samples, 1, 0, 2);
print_r($samples);

//出力結果
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 5
)

複数の要素を追加したい場合は、
配列で記載すると可能になります。
array_push(配列名, 追加したい場所, 0, [追加したい要素1, 追加したい要素2, 追加したい要素3....])
で可能です。
array_push(配列名, 追加したい場所, 0, 追加したい要素1, 追加したい要素2, 追加したい要素3....)
と記載するとエラーになります。

sample.php
$samples = [1, 5];
array_splice($samples, 1, 0, [2, 3, 4]);  //array_splice($samples, 1, 0, 2, 3, 4);でないことに注意
print_r($samples);

//出力結果
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

array_splice()は本来、
その位置から何個目までを削除して置換する
という趣旨の関数ですが、
(array_splice(配列名, 削除したい要素の要素番号, 削除したい要素の要素番号から何個要素を削除するか, 追加する要素))
削除対象を0個にすることで、要素を任意の位置に挿入できるようになります。

また、複数の要素を既存の配列の要素をまたいで追加することはできません。
どういうことかというと、
[1,3,5]という配列に2と4を追加して[1,2,3,4,5]を作る場合、

sample.php
$samples = [1, 3, 5];
array_splice($samples, 1, 0, 2);
//この時点で[1, 2 ,3, 5]
array_splice($samples, 3, 0, 4);
print_r($samples);

//出力結果
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

となります。

配列の適当な位置に要素を追加するときに困ったので、
こちらの記事を備忘録的に書きました。
参考になると嬉しいです。