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

PHP

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

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

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

PR

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」が返ってきます。

PR

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関数を使っていきましょう。

コメント

Ads Blocker Image Powered by Code Help Pro

広告ブロッカーが検出されました。

ブラウザの拡張機能を使用して広告ブロックをしていることが確認できました。 ブラウザの広告ブロッカー機能を無効にしていただくか、codelikes.comをホワイトリストに追加し、更新をクリックしてください。 お手数ですが、よろしくお願いします🙇‍♂️
タイトルとURLをコピーしました