PHPの配列に要素を追加する方法について書いています。
PHPの配列に要素を追加するときには、下記の方法を使います。
・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関数を使っています。
第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関数を使っていきましょう。
コメント