PHPの配列の使い方を初心者向けに解説する

  • PR
  • プログラミング
PHPの配列の使い方を初心者向けに解説する

この記事ではプログラミング言語「PHP」の配列について解説していきます。この記事の内容は次の方におすすめできます。



▼この記事がおすすめの人

  • PHPの配列について理解したい
  • 配列のコードの書き方について知りたい
  • コピペで使えるサンプルコードがあれば確認したい



▼この記事を書いたひと

フリーランスみやしも(@miyashimo_blog)です。プログラミングやWebサイト制作に関するITの情報を幅広くお届けしていきます。

PHPの配列について

配列のイメージ

今回解説するPHPの「配列(はいれつ)」複数の値を1つの変数にまとめて格納できるデータ構造です。

配列の考え方|沢山のものが入る箱

PHPでは変数を使うことで数字や文字列などのデータを保持できますが、通常は1つの変数につき1つの値しか保持できません。しかし次の様に変数に配列を定義すれば、1つの変数に複数の値をまとめて保持することが可能になります。



▼変数と配列の定義

// 1.変数を定義する
$fruits = "リンゴ";

// 2.配列を定義する
$fruits = array("リンゴ","オレンジ","バナナ");



配列に格納された1つ1つのデータのことは「要素(ようそ)」と呼ばれ、配列に対して新しく追加したり、後から削除したり、目的に合わせて柔軟に取り扱うことができます。

変数は様々なものを入れる"箱"に例えて説明されることが多いですが、配列は"沢山のものが入る箱"に例えられます。まずは変数と配列の入れ物としての違いをイメージしておきましょう。

配列の要素|キーと値について

配列に格納されている要素は「キー」「値」という情報のペアから成り立っています。キーと値にはそれぞれ次の役割があります。

①キー 配列に格納された要素を識別するための一位の情報。キーには数値や文字列が使用できます。
②値 配列に格納された要素が持つ実際のデータ。

配列のキーは要素を参照する"アドレス"としての役割があります。具体的には次の様に変数の後ろの[](ブラケット)内でキーを指定することで任意の要素の値を参照できます。



▼要素にアクセスする

// 配列を定義する
$fruits = array("リンゴ","オレンジ","バナナ");

// 要素にアクセスする
echo $fruits[0]; // リンゴが出力される
echo $fruits[1]; // オレンジが出力される
echo $fruits[2]; // バナナが出力される
要素のキーや値はPHPの配列を扱ううえでとても重要な概念です。後半ではキーの扱い方が異なる「添字配列」「連想配列」についても解説していきます。

多次元配列について

【PHPの配列】多次元配列

配列の要素には配列を格納することも可能です。配列の中にさらに配列が含まれる構造のことは「多次元配列(たじげんはいれつ)」と呼びます。以下は配列の各要素に同じサイズの配列を格納している2次元配列の例です。



▼2次元配列

// 2次元配列の作成
$matrix = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

// 要素へのアクセス
echo $matrix[0][1]; // 出力: 2
echo $matrix[2][2]; // 出力: 9
多次元配列はより複雑なデータの格納や管理をするために利用されます。初めはイメージしづらいと思いますが、まずは「配列の中にさらに配列を格納できる」ことを覚えておきましょう。

添字配列と連想配列について

【PHPの配列】 添字配列・連想配列

PHPの配列には「添字配列(そえじはいれつ)」「連想配列(れんそうはいれつ)」の2種類があります。

①添字配列 要素のキーに0から始まる整数が使われている配列。
②連想配列 要素のキーに任意の文字列または数値が使われている配列。

配列の種類①: 添字配列

添字配列は要素のキーに0から始まる整数が使われている配列です。



配列を定義する際にキーを宣言しない場合は、自動的に整数が割り当てられて添字配列になります。これまでの例で登場した配列はすべて添字配列にあたります。



▼添字配列

// 配列の定義
$fruits = ["リンゴ","オレンジ","バナナ"];

// 配列の要素にアクセス
echo $fruits[0]; // リンゴが出力される
echo $fruits[1]; // オレンジが出力される
echo $fruits[2]; // バナナが出力される

配列の種類②: 連想配列

連想配列は要素のキーに任意の文字列または数値が使われている配列です。連想配列は配列を定義する際に任意のキーを指定することで作成できます。



▼連想配列

// 配列の定義
$fruits = ["apple"=>"リンゴ","orange"=>"オレンジ","banana"=>"バナナ"];

// 配列の要素にアクセス
echo $fruits["apple"]; // リンゴが出力される
echo $fruits["orange"]; // オレンジが出力される
echo $fruits["banana"]; // バナナが出力される
添字配列と連想配列はどちらもできる事は同じですが、使用されるキーの内容とアクセス方法に違いがあります。

配列の基本的な使い方

ここからは配列の基本的な使い方について解説を進めていきます。

配列を定義する方法

PHPでは次の様にすることで配列が作成できます。



▼変数の定義

// array()関数
$fruits = array("リンゴ", "オレンジ", "バナナ");

// 配列の短縮構文
$fruits = ["リンゴ", "オレンジ", "バナナ"];



PHPの配列は言語に組み込まれているarray()関数を使って定義できますが、一方で[](ブラケット)による短縮構文も使うことができます。

基本的にどちらの書き方でも同じ事ができますが、短縮構文を使った方がコードを短くスマートにできます。

要素にアクセスする方法

配列の要素には初めにも登場した「キー」を使ってアクセスします。



▼添字配列の場合

// 配列の定義
$fruits = ["リンゴ","オレンジ","バナナ"];

// 配列の要素にアクセス
echo $fruits[0]; // リンゴが出力される
echo $fruits[1]; // オレンジが出力される
echo $fruits[2]; // バナナが出力される



▼連想配列の場合

// 配列の定義
$fruits = ["apple"=>"リンゴ","orange"=>"オレンジ","banana"=>"バナナ"];

// 配列の要素にアクセス
echo $fruits["apple"]; // リンゴが出力される
echo $fruits["orange"]; // オレンジが出力される
echo $fruits["banana"]; // バナナが出力される



PHPでは配列を定義した変数の後ろに[]を付けてキーを指定することで、任意の要素にアクセスできます。添字配列と連想配列でキーの指定方法が異なる点にも注目してみましょう。

配列のループ処理

ここではforやforeachなどを使った配列のループ処理の方法について解説します。

for文で処理する方法

配列内のデータをfor文で処理する場合は次の様にコードを書く事ができます。



▼コード

// 配列の定義
$fruits = ["リンゴ","オレンジ","バナナ"];

// ループ処理
for($i = 0 ; $i < count($fruits); $i++){
    echo $fruits[$i] . "\n";
}


▼処理結果

リンゴ
オレンジ
バナナ



PHPではcount()関数を使って配列の長さ(要素数)を取得できるので、上記の様に書くことで配列の長さに合わせてループ回数を制御できます。またループ内ではループカウンタの変数を使う事で配列の要素を順番に参照できます。

for文は例えば配列のインデックスに基づいてループ処理する場合や、配列の一部だけをループしたい場合などに有効です。次で紹介するforeachと合わせて使い分けを考えてみましょう。

foreach文で処理する方法

配列内のデータをforeach文で処理する場合は次の様にコードを書く事ができます。



▼コード

// 配列の定義
$fruits = ["リンゴ","オレンジ","バナナ"];

// ループ処理
foreach($fruits as $fruit){
    echo $fruit . "\n";
}


▼処理結果

リンゴ
オレンジ
バナナ



foreachで「as $key => $value」の構文を使えば、ループ内でキーと値の両方を扱うこともできます。



▼コード

// 配列の定義
$fruits = ["リンゴ","オレンジ","バナナ"];

// ループ処理
foreach($fruits as $key => $val){
    echo "key:" . $key . " " . "val:" . $val . "\n";
}


▼処理結果

key:0 val:リンゴ
key:1 val:オレンジ
key:2 val:バナナ
foreachは配列の全ての要素を順番に処理する方法として使う機会がとても多いです。配列のループ処理の基本として覚えておきましょう。

この記事のまとめ

この記事ではプログラミング言語「PHP」の配列について解説していきました。いずれもPHPを使った幅広いプログラミングの目的でご活用頂きたい情報です。



このほか当ブログではプログラミングで役立つ情報を多数掲載しています。あわせてご活用くださいませ。



▼関連記事を探す

プログラミングの記事一覧

今回は以上となります。最後までお読みいただき、ありがとうございました!