PHPにおいて配列の操作は、Webアプリケーション開発における最も基本的なスキルの一つです。
動的なデータを扱う際、既存の配列に対して要素を後から追加する場面は非常に多く発生します。
PHPには配列へ要素を追加するための方法が複数用意されていますが、主に使われるのがarray_push関数とブラケット構文($array[])です。
この記事では、これら2つの手法の使い方や違い、そして2026年現在の開発現場で推奨される使い分けについて詳しく解説します。
array_push関数による要素の追加
array_pushは、PHPの標準関数として古くから利用されている配列操作のための関数です。
この関数を使用することで、配列の末尾に1つ以上の要素をまとめて追加することができます。
array_pushの基本構文
array_push関数の基本的な使い方は、第一引数に対象となる配列を渡し、第二引数以降に追加したい値を指定します。
この関数は、要素を追加した後の配列の要素数を返り値として返すという特徴があります。
<?php
// 初期配列の定義
$stack = ["orange", "banana"];
// array_pushを使用して要素を追加
$newCount = array_push($stack, "apple", "raspberry");
// 結果の表示
print_r($stack);
echo "新しい要素数: " . $newCount;
?>
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)
新しい要素数: 4
複数の要素を一度に追加する
array_pushの大きなメリットは、複数の値を一度に渡せる点にあります。
可変長引数を受け取ることができるため、カンマ区切りで複数のデータを記述するだけで一括追加が可能です。
大量のデータを一度にスタックしたい場合には、コードの記述量を減らすことができるため有効な手段となります。
ブラケット構文($array[])による要素の追加
現代のPHP開発において、最も頻繁に利用されているのがブラケット構文を用いた方法です。
これは配列名の後ろに空のブラケット[]を付け、そこに値を代入する形式を指します。
ブラケット構文の基本構文
ブラケット構文は、非常にシンプルで直感的な記述が可能です。
関数を呼び出すオーバーヘッドがないため、単一の要素を追加する場合はブラケット構文の使用が推奨されています。
<?php
// 初期配列の定義
$fruits = ["apple", "banana"];
// ブラケット構文で要素を追加
$fruits[] = "orange";
// 結果の表示
print_r($fruits);
?>
Array
(
[0] => apple
[1] => banana
[2] => orange
)
ブラケット構文のメリット
ブラケット構文を利用する最大のメリットは、コードの可読性と実行速度の向上です。
PHPの言語構造として処理されるため、関数呼び出しを伴うarray_pushよりもわずかに高速に動作します。
また、コードが短くなるため、ループ処理の中などで頻繁に要素を追加する際に見通しが良くなります。
array_pushとブラケット構文の比較
どちらの方法を使用しても最終的な配列の状態は同じになりますが、細かな違いが存在します。
以下の表で、それぞれの特徴を整理しました。
| 比較項目 | array_push | ブラケット構文 ($array[]) |
|---|---|---|
| 追加できる要素数 | 複数可能 | 1つずつ(1行につき1つ) |
| 処理速度 | 関数呼び出しのため僅かに遅い | 言語構造のため高速 |
| 返り値 | 追加後の要素数を返す | なし(代入文のため) |
| 未定義変数の扱い | エラー(Warning)が発生する | 新しい配列として初期化される |
パフォーマンスの違い
パフォーマンスの面では、単一要素の追加においてブラケット構文の方が優れています。
PHP公式ドキュメントでも、1つの要素を追加するだけであれば関数呼び出しのオーバーヘッドがないブラケット構文の使用が推奨されています。
しかし、マイクロベンチマークレベルの差であるため、通常のWebアプリケーション開発で致命的な差になることは稀です。
未定義配列への挙動の違い
注意が必要なのは、変数がまだ定義されていない場合の挙動です。
array_pushに未定義の変数を渡すとエラーになりますが、ブラケット構文の場合は自動的に配列として初期化されます。
意図しない挙動を防ぐためには、事前に空の配列で初期化しておく習慣をつけることが重要です。
その他の配列追加テクニック
末尾への追加以外にも、配列を操作する方法はいくつか存在します。
用途に応じてこれらを使い分けることで、より柔軟なプログラミングが可能になります。
配列の先頭に追加する:array_unshift
配列の末尾ではなく、先頭に要素を追加したい場合はarray_unshift関数を使用します。
この関数を使用すると、既存の要素のインデックスはすべて振り直されることになります。
配列同士を結合する:array_merge
2つの配列を1つにまとめたい場合は、array_merge関数やスプレッド演算子(...)が便利です。
特にスプレッド演算子はPHP 7.4以降で利用可能になり、2026年現在のモダンな開発では主流の手法となっています。
<?php
$array1 = ["a", "b"];
$array2 = ["c", "d"];
// スプレッド演算子による結合
$result = [...$array1, ...$array2, "e"];
print_r($result);
?>
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
)
まとめ
PHPで配列に要素を追加する際は、「単一要素ならブラケット構文、複数要素ならarray_push」という使い分けが基本です。
ブラケット構文はシンプルで実行速度に優れており、多くのコーディング規約でも推奨されています。
一方で、array_pushは複数の値を一度に追加できるという利便性があります。
それぞれの特性を理解し、プロジェクトの可読性や要件に合わせて最適な手法を選択しましょう。
最新のPHPバージョンでは配列操作のパフォーマンスも向上していますが、基本に忠実な記述を心がけることが保守性の高いコードに繋がります。
