【PHP入門】配列、連想配列を使ってみよう!

投稿日: 作成:   更新:

PHPで配列の使い方(定義、値の取得)と、
配列の種類「1次元配列、2次元配列、連想配列」がどのようなものかあるのかを解説します。

PHPに限らずですが「配列を制するものはプログラミングを制する」と言われているほど配列は重要なプログラミングの要素ですので、

まずは「配列とは何者か?」という感覚をつかんでもらえればOKです。

それでは行きましょう!

配列とは

配列は複数の値を1つの変数に入れて使用します。

変数について「変数の宣言と使い方をマスターしよう!」でstring型、int型の説明しました。
string型、int型は1つの変数に1つの値を入れていましたが、配列はarray型を使って複数の値を入れることができます。

配列のイメージは次のようになります。

インデックス番号「0, 1, 2」が振られており、このなかにフルーツ名が入っていて、インデックス番号は 0 を指定したら「バナナ」が取り出せるキーとなっています。

次の「配列の使い方」で、このイメージの配列をソースコードで記述してみます。

配列の使い方

配列を定義してみる

PHPの配列はarray()構文を使って定義します。
[]を使ってarray()を省略してもOKです。

<?php 

$arr = array("バナナ", "イチゴ", "すいか");

// 次のようにarrayを省略してもOK
$arr = ["バナナ", "イチゴ", "すいか"];

?>

配列の値を取得してみる

変数に定義した配列から値を取得してみましょう。

配列の取得方法はインデックス番号を指定して取得します。

「インデックスを指定して表示する方法」と「ループして表示する方法」の2つのソースコードを書いてみます。

<?php 

$arr = array("バナナ", "イチゴ", "すいか");

echo "インデックスを指定して表示<br>";
echo $arr[0] . "<br>";
echo $arr[1] . "<br>";
echo $arr[2] . "<br>";
echo "<br>";

echo "ループして表示<br>";
for ($i = 0; $i < count($arr); $i++) {
    echo $arr[$i] . "<br>";
}

?>

実行結果:

上記のように配列から値を取得できましたか?
この感覚をつかんでおきましょう。

配列の種類

PHPの配列の種類について紹介します。
今回は「1次元配列、2次元配列、連想配列」の3種類について説明します。

1次元配列

これは先ほど「配列の使い方」で説明しましたが、おさらいで「都道府県」を例にソースコードを記述してみます。

<?php 

$arr = array("東京都", "千葉県", "青森県", "秋田県");

echo "インデックスを指定して表示<br>";
echo $arr[0] . "<br>";
echo $arr[1] . "<br>";
echo $arr[2] . "<br>";
echo $arr[3] . "<br>";
echo "<br>";

echo "ループして表示<br>";
for ($i = 0; $i < count($arr); $i++) {
    echo $arr[$i] . "<br>";
}

?>

実行結果:

都道府県を表示できました。
配列のイメージは次のような感じです。

2次元配列

2次元配列は、配列の中に配列が入っている状態です。
言葉だと何だか分からないと思いますので、ソースコードを見てみましょう。

<?php 

$arr = 
    array(
        array("東京都", "千葉県"), 
        array("青森県", "秋田県")
    );

echo "インデックスを指定して表示<br>";
echo $arr[0][0] . "<br>";
echo $arr[0][1] . "<br>";
echo $arr[1][0] . "<br>";
echo $arr[1][1] . "<br>";
echo "<br>";

echo "ループして表示<br>";
for ($i = 0; $i < count($arr); $i++) {
    for ($j = 0; $j < count($arr[$i]); $j++) {
        echo $arr[$i][$j] . "<br>";
    }
}

?>

実行結果:

1次元配列と出力結果は同じですが、値の取得には2回ループする必要があります。

2次元配列をイメージで表すと次のようになります。

このように、2次元配列は「行、列」を表すことができます。
この例はインデックス番号なので分かりづらいのですが、「行0 = 関東、行1 = 東北」を表しています。

2次元配列の入れ子と同じ要領で「3次元、4次元」のように入れ子を深くすることもできますが、入れ子が深くなるとループが複雑になるので頭が混乱しますので、できるだけ入れ子は浅くして使いたいものです。

もし、入れ子が複雑になり混乱したときはExcelなどを使って一回表のイメージにして考えると良いです。

連想配列

連想配列はインデックス番号の代わりにキー名称がついた配列です。
データベースから取得した場合など、この連想配列を使って操作することが多いです。

他の配列とは違って、連想配列はインデックス番号がないので、ループするには「foreach」を使用します。

では、ソースコードを見てみましょう。

<?php 

$arr = 
    array(
        "tokyo"  => "東京都",
        "chiba"  => "千葉県", 
        "aomori" => "青森県", 
        "akita"  => "秋田県"
    );

echo "キーを指定して表示<br>";
echo $arr["tokyo"] . "<br>";
echo $arr["chiba"] . "<br>";
echo $arr["aomori"] . "<br>";
echo $arr["akita"] . "<br>";
echo "<br>";

echo "ループして表示<br>";
foreach ($arr as $val) {
    echo $val . "<br>";
}

?>

実行結果:

1次元配列、2次元配列とは違ってインデックス番号を使わないので、ソースコードが見やすいですね。

連想配列をイメージで表すと次のようになります。

連想配列はその名のとおり「連想する配列」ですので、キー名が tokyo なら「東京都」が取得できるように、わかりやすいキー名称をつけて連想させましょう。

まとめ

PHPの配列について次の内容で解説しました。

  • 配列とは
  • 配列の定義、取得する方法
  • 配列の種類「1次元配列、2次元配列、連想配列」の使い方とイメージ

システムを作る上で配列は必ずと言っていいほど使用しますので、配列のイメージだけでも覚えておきましょう。


プログラミングスクールをお探しの方へ

プログラミング学習を挫折せずに続けて成功できる人は

「目的目標を明確にすること」
「質問・相談できる環境を作ること」
「自己解決スキルを身に着けること」

この3つを大切にしてると思います。

ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。

  • テックキャンプ
    本気でIT業界に転職したい方におすすめです。
    転職できなかったら全額返金があります。
  • DMM WEBCAMP
    国から認定されているスクールです。
    やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。
  • TechAcademy
    1週間の無料体験があります。
    気軽にスクールを体験したい方向けです。