PHPの配列に要素を追加する3つの方法!(array_push)

PHP

PHPの配列に要素を追加する方法について書いています。
PHPの配列に要素を追加するときには、下記の方法を使います。

・array_push関数を使う
・array_splice関数を使う
・代入演算子で入れる

記載しているサンプルコードはPHPのバージョン8.1.8で、動作検証しています。

array_push関数で要素を追加する

array_push関数を使うことで、配列の末尾(最後)に要素を追加することができます。
array_push関数の公式ドキュメントはこちらです。
例えば、下記のように使います。

<?php
$fruits = ['orange', 'apple'];

array_push($fruits, 'cherry');
var_dump($fruits);

$fruits変数に2つの要素で、配列を作成しました。

次の処理でarray_push関数を使っています。
第1引数に「要素を追加する配列」を指定します。
第2引数に「追加したい要素」を指定します。

今回は$fruits配列を指定して、追加する要素は’cherry’です。
var_dump関数で出力すると、下記のように配列の末尾に追加されたことが確認できました。

array(3) {
  [0]=>
  string(6) "orange"
  [1]=>
  string(5) "apple"
  [2]=>
  string(6) "cherry"
}

複数の値を追加したいとき

array_push関数では、複数の要素を一括で追加することも可能です。

<?php
$fruits = ['orange', 'apple'];

array_push($fruits, 'banana', 'grape', 'lemon');
var_dump($fruits);

最初に$fruits変数に2つの要素で、配列を作成しました。

その後にarray_push関数で、複数の値を追加しています。
第2引数以降に、追加する値を複数指定することが可能です。

今回のコードでは「banana, grape, lemon」を追加しました。
var_dump関数で出力すると、指定した値が下記のように、一括で末尾に追加されました。

array(5) {
  [0]=>
  string(6) "orange"
  [1]=>
  string(5) "apple"
  [2]=>
  string(6) "banana"
  [3]=>
  string(5) "grape"
  [4]=>
  string(5) "lemon"
}

array_push関数の引数について

array_push関数の引数についてまとめます。

第1引数には、要素を追加する配列を指定しました。
この第1引数は、参照渡しになっているため渡しただけで、同じ配列が更新されます。

第2引数以降には、追加したい要素を代入しました。
この引数は可変引数になっているので、複数の追加要素を渡すことが可能でした。

array_push関数の返り値について

array_push関数の返り値についてです。

array_push関数の返り値は、配列に要素を追加した後の要素の数を返します。
例えば、下記のように追加した後に要素が3つになった場合です。

<?php
$fruits = ['orange', 'apple'];
$result = array_push($fruits, 'banana');

var_dump($result); // int(3)

$result変数には「3」が返ってきます。

array_splice関数で要素を追加する

array_splice関数を使うと、配列の途中に要素を追加することができます。
array_splice関数の公式ドキュメントはこちらです。
例えば、下記のように使います。

<?php
$fruits = ['orange', 'apple', 'banana', 'grape'];
array_splice($fruits, 2, 0, 'lemon');

var_dump($fruits);

$fruits変数に、4つの要素を入れて配列を作成しています。

次の行で、array_splice関数を使っています。

第1引数は要素を追加したい配列です。
第2引数は要素を追加する場所を指定します。
第3引数は削除する要素を指定します。(0を指定しておくと、何も削除せずに追加のみになります。)
第4引数は追加したい要素を指定します。

今回の場合は、$fruits配列の2番目に’lemon’を追加しています。
配列は0番目から数えるので、’banana’の箇所に追加されて、ひとつ要素がずれます。

var_dump関数で確認すると、下記のように出力されました。

array(5) {
  [0]=>
  string(6) "orange"
  [1]=>
  string(5) "apple"
  [2]=>
  string(5) "lemon"
  [3]=>
  string(6) "banana"
  [4]=>
  string(5) "grape"
}

要素が、配列の途中に追加できたことが確認できました。

代入演算子で追加する

代入演算子(=)を使って、配列に要素を追加していくことができます。
例えば、下記のように使います。

<?php
$fruits = ['orange'];
$fruits[] = 'apple';
$fruits[] = 'lemon';

var_dump($fruits);

最初に$fruits変数に、ひとつの要素を入れて配列を作成しています。

次に「$fruits[]」として、配列を指定しています。ここに代入演算子(=)を使って’apple’を代入しています。
こうすることで、配列の末尾に要素が追加されます。

その次に同じようにして、配列の末尾に’lemon’を追加しました。
var_dump関数で出力すると、下記のように2つの要素が追加されたことが確認できました。

array(3) {
  [0]=>
  string(6) "orange"
  [1]=>
  string(5) "apple"
  [2]=>
  string(5) "lemon"
}

おわりに

今回は、PHPの配列に要素を追加する方法について書きました。

array_push関数の公式ドキュメントに記載がありますが、ひとつの要素を追加する場合には、関数を呼ぶオーバーヘッドがないため代入演算子で追加した方が良いとのことです。
array_push関数で要素を追加するのは、複数の値を追加したり、追加した後の要素数が欲しい場合のみになりそうです。

配列の途中に値を追加したい場合には、array_splice関数を使っていきましょう。

コメント

タイトルとURLをコピーしました