PHPで配列を作成する!array()と短縮構文[]の書き方と違い
生徒
「PHPでたくさんのデータをまとめて管理したいときは、どうすればいいですか?」
先生
「それには『配列(はいれつ)』という仕組みを使います。変数には1つの値しか入りませんが、配列なら複数の値をセットにできるんですよ。」
生徒
「配列を作るには、どんな書き方をすればいいんでしょうか?」
先生
「PHPには、昔から使われているarray関数と、最近主流の短縮構文があります。それぞれの違いを見ていきましょう!」
1. PHPの配列とは?初心者のためのイメージ解説
プログラミングの世界で「配列(はいれつ)」とは、複数のデータを一つの箱の中に並べて入れておくための仕組みのことです。パソコンを初めて触る方にとって、変数と配列の違いは少しイメージしにくいかもしれません。そこで、身近なもので例えてみましょう。
これまでの「変数」は、一つの名前がついた「小さな手提げ袋」のようなものでした。中にはリンゴが一個しか入りません。しかし「配列」は、仕切りのある「卵のパック」や「マンションの一棟」のようなイメージです。一つの「マンション」という名前の中に、101号室、102号室、103号室と部屋が分かれていて、それぞれの部屋に別々のデータ(住人)を入れることができます。
PHPでは、この配列を使うことで、商品のリストやユーザーの名前一覧、一週間の天気予報といった、関連性のある複数の情報を効率よく扱うことができるようになります。Webサイト制作において、配列は必須の知識となります。
2. 配列の作り方その1:array関数を使う基本の書き方
PHPで配列を作成する最も伝統的な方法が、array()という関数を使う方法です。PHPの古いバージョンから存在しており、多くの解説サイトや既存のプログラムで見かける書き方です。文法は非常にシンプルで、arrayという文字の後にカッコを書き、その中に保存したいデータをカンマ区切りで並べていきます。
例えば、果物の名前をまとめた配列を作ってみましょう。プログラミングにおいて、文字を扱うときは「'(シングルクォーテーション)」や「"(ダブルクォーテーション)」で囲むのがルールです。このルールを守らないと、パソコンはそれが文字なのか命令なのか判断できず、エラーが発生してしまいます。
まずは、実際にarray()を使って配列を作成し、その中身を表示するコードを見てみましょう。
$fruits = array('リンゴ', 'バナナ', 'オレンジ');
// 配列の中身を表示するための命令
print_r($fruits);
実行結果は以下のようになります。
Array
(
[0] => リンゴ
[1] => バナナ
[2] => オレンジ
)
3. インデックス番号(添え字)の重要なルール
先ほどの実行結果を見て、「[0]」「[1]」「[2]」という数字が表示されていることに気づきましたか?これはプログラミングにおいて非常に重要な「インデックス番号(添え字)」と呼ばれるものです。配列の各部屋に割り振られた「部屋番号」だと考えてください。
ここで初心者が最も間違いやすいポイントがあります。それは、「番号は0から始まる」というルールです。1番目のデータは「0番」、2番目のデータは「1番」となります。なぜ1から始まらないのか不思議に思うかもしれませんが、これはコンピュータの仕組み上の都合であり、PHPに限らず多くのプログラミング言語で共通のルールとなっています。
この番号を指定することで、配列の中から特定のデータだけを取り出すことができます。例えば、先ほどの配列から「リンゴ」を取り出したいときは、$fruits[0]と記述します。このとき使われる「[ ]」は、配列の特定の要素にアクセスするための記号です。
4. 配列の作り方その2:短縮構文(ブラケット構文)の書き方
PHP 5.4というバージョンから、より簡単に配列を書くことができる「短縮構文」が導入されました。これはarray()という文字を書かずに、直接[](ブラケット)を使って配列を表現する方法です。現在、最新のWeb開発現場ではこちらの書き方が主流となっています。
短縮構文のメリットは、コードが短くなるため、読みやすくなる(可読性が上がる)点にあります。特に複雑なプログラムを組むようになると、コードの記述量は増えていくため、少しでもシンプルに書けることは大きな武器になります。初心者の方も、今から覚えるのであればこちらの「[]」を使った書き方に慣れておくのがおすすめです。
では、短縮構文を使って数値の配列を作ってみましょう。数値の場合は、文字と違ってクォーテーションで囲む必要はありません。
$numbers = [10, 20, 30, 40, 50];
// 3番目の要素(インデックス2)を表示
echo $numbers[2];
実行結果は以下のようになります。
30
3番目の数字である30が表示されましたね。インデックスが「2」であることに注目してください。
5. array()と短縮構文[]の違いと使い分けのポイント
結論から言うと、array()と[]に機能的な違いは全くありません。どちらを使っても、全く同じ配列が作成されます。そのため、どちらを使うかは開発者の好みや、プロジェクトのルール(コーディング規約)によります。
しかし、前述の通りモダンなPHP開発においては短縮構文である[]が強く推奨されています。記述がシンプルになるだけでなく、他のプログラミング言語(JavaScriptやPythonなど)でも配列を[]で表現することが多いため、他の言語を学ぶ際にも知識が活かしやすいというメリットもあります。
ただし、非常に古いサーバーで動いている古いPHPプログラムを修正する場合、まれに短縮構文が使えない(エラーになる)ことがあります。もし古い環境で作業をする必要があるときは、array()を使う必要があることを覚えておきましょう。最新の学習環境であれば、迷わず[]を使って問題ありません。
6. 数値配列へのデータの追加と更新方法
一度作成した配列に、後から新しいデータを追加したり、既存のデータを書き換えたりすることも頻繁に行われます。配列は動的にサイズを変えることができるため、非常に柔軟です。データを追加する最も簡単な方法は、インデックスを指定せずに[]を付けて代入することです。これにより、配列の最後尾に新しい要素が自動的に追加されます。
また、特定の部屋番号(インデックス)を指定して新しい値を代入すれば、その部屋のデータを上書きすることができます。これを「更新」と呼びます。プログラミングでは、常に最新のデータを保持するために、このような操作を繰り返します。
具体的な追加と更新の処理をコードで確認してみましょう。プログラミング未経験の方も、一つひとつの行が何をしているか、コメント(//の後の説明文)を読みながら追ってみてください。
$colors = ['赤', '青'];
// 配列の最後に「緑」を追加
$colors[] = '緑';
// 0番目の「赤」を「黄色」に書き換え(更新)
$colors[0] = '黄色';
print_r($colors);
実行結果は以下のようになります。
Array
(
[0] => 黄色
[1] => 青
[2] => 緑
)
7. 複数の型が混在する配列と注意点
PHPの配列の非常に便利な(そして少し注意が必要な)特徴として、「一つの配列の中に、異なる種類のデータを混ぜて入れることができる」という点があります。例えば、文字列、数値、真偽値(正しいか間違いかを表すデータ)などを一つの配列に共存させることが可能です。
他のプログラミング言語(Javaなど)では、配列に入れるデータの種類(型)をあらかじめ決めておかなければならないことが多いですが、PHPはこのあたりが非常に自由です。初心者にとってはエラーが出にくく、扱いやすい仕様といえます。しかし、あまりにもバラバラなデータを入れると、後でプログラムが複雑になったときに「何が入っているかわからない」という事態になりかねません。基本的には、関連性のある同じ種類のデータをまとめるのが、綺麗なプログラムを書くコツです。
$mix_data = [
'ユーザー名',
2026,
true
];
var_dump($mix_data);
実行結果は以下のようになります(var_dumpは詳細な情報を表示する命令です)。
array(3) {
[0]=> string(15) "ユーザー名"
[1]=> int(2026)
[2]=> bool(true)
}
8. エラーを避けるための空の配列の作り方
プログラムを作っていると、「今はまだ中身はないけれど、後でデータを入れるために箱だけ用意しておきたい」という場面があります。これを「空(から)の配列」の初期化と呼びます。もし、配列を作成する前にデータを追加しようとすると、PHPが気を利かせて自動的に配列を作ってくれることもありますが、基本的には最初に「これは配列ですよ」と宣言しておくのが正しい書き方です。
空の配列を作るのも簡単で、中身を何も書かずに$list = [];または$list = array();と書くだけです。これにより、予期せぬエラーを防ぎ、プログラムの意図を明確にすることができます。専門用語で「初期化」と言いますが、これは「最初の状態をセットする」という意味だと考えてください。
Webサイトの検索機能などで、「検索結果が0件だった場合に空の配列を返す」といった処理は非常によく使われます。基礎的な部分ですが、バグの少ない安全なコードを書くためには欠かせないテクニックです。
まとめ
PHPのプログラミングにおいて、データの管理を効率化するために欠かせないのが「配列(Array)」の活用です。今回の記事では、初心者の方が最初につまずきやすい配列の概念から、具体的な作成方法であるarray()関数と短縮構文[]の使い方、そしてデータの追加や更新といった基本操作について詳しく解説してきました。
配列の基本構造とインデックスの重要性
配列は、一つの変数名で複数の値を管理できる「仕切りのある箱」のような構造をしています。各値には「インデックス(添え字)」と呼ばれる部屋番号が自動的に割り振られますが、この番号が「0から始まる」というルールは非常に重要です。1番目のデータにアクセスしたいときは$array[0]、2番目は$array[1]という指定方法を徹底しましょう。この数値のズレを正しく理解することが、バグの少ないコードを書く第一歩となります。
2つの書き方:array()と短縮構文[]の使い分け
PHP 5.4以降で導入された短縮構文[]は、現在のWeb開発におけるスタンダードとなっています。記述が簡潔になり、視認性が向上するため、新規でプログラムを書く際は積極的な採用が推奨されます。一方で、保守案件などで古いPHP環境(PHP 5.3以前)を扱う場合には、伝統的なarray()関数を使用しなければならない場面もあるため、両方の書き方を知識として持っておくことがプロフェッショナルなエンジニアへの道です。
実践的な配列操作のサンプルコード
実際の開発現場では、配列を定義するだけでなく、動的にデータを操作する処理が頻繁に登場します。ここでは、配列の作成からデータの追加、特定の要素の更新、そしてデバッグによく使われる出力方法までをまとめた実践的なコードを確認しましょう。
// 1. 短縮構文で配列を初期化(プログラミング言語のリスト)
$languages = ['PHP', 'Java', 'Python'];
// 2. 配列の末尾に新しい要素を追加
$languages[] = 'Ruby';
// 3. インデックスを指定して要素を更新(JavaをJavaScriptに変更)
$languages[1] = 'JavaScript';
// 4. 配列全体の状態を確認(デバッグ用)
print_r($languages);
// 5. 特定の要素だけを抽出して表示
echo 'おすすめの言語は' . $languages[0] . 'です。';
上記コードの実行結果は以下のようになります。
Array
(
[0] => PHP
[1] => JavaScript
[2] => Python
[3] => Ruby
)
おすすめの言語はPHPです。
柔軟性と注意点
PHPの配列は、数値、文字列、論理値(true/false)など、異なるデータ型を混在させることができる非常に柔軟な仕様を持っています。しかし、開発の規模が大きくなるにつれて、型がバラバラな配列は処理の複雑化を招く原因となります。可能な限り「同じ目的のデータ」をまとめるように意識し、可読性の高いコードを心がけましょう。また、予期せぬエラー(Undefined array keyなど)を防ぐために、あらかじめ空の配列$list = [];を用意して初期化しておく習慣をつけることも大切です。
生徒
「先生、ありがとうございました!配列を使うと、たくさんのデータを1つにまとめられるので、コードがすごくスッキリしますね。特に短縮構文の[]は書きやすくて気に入りました。」
先生
「そうですね。今のPHP開発では[]を使うのが一般的です。でも、一番大事なのは書き方よりも『インデックスは0から数える』というルールですよ。1番目のデータが欲しいのに[1]と書いてしまうミスは、ベテランでもたまにやってしまうんです。」
生徒
「0から始まる感覚、しっかり身につけます!あと、配列にデータを追加するときにインデックスを書かずに$array[] = '値';とするだけで最後に追加されるのも便利だと思いました。」
先生
「いいところに気づきましたね。それがPHPの配列の柔軟なところです。次は、この配列をループ処理(foreachなど)で順番に取り出す方法を学ぶと、さらにWebサイト制作の幅が広がりますよ。頑張りましょう!」
生徒
「はい!もっと色々なデータを配列で操れるようになりたいです。繰り返し処理も楽しみです!」