【初心者入門PHP】配列とは何か

スポンサーリンク
PHP

データを保持、管理する方法は変数だけではありません。
まとまったデータを扱う場合には配列が便利です。

普通の配列

学校の生徒の名前を管理するウェブサービスを作りたいとき、変数だけでは実現することは大変でしょう。

変数だと、こんな書き方になってしまいます。
宣言するのも大変だし、テーブルタグを使ってhtmlで表示したいってなったら、「何個<tr>タグを書かないといけないんだ!」って発狂しそうです。

    <table>
        <tbody>
            <tr>
                <td>
                    <?php echo $classmate00;?>
                </td>
            </tr>
            <tr>
                <td>
                    <?php echo $classmate01;?>
                </td>
            </tr>
            <tr>
                <td>
                    <?php echo $classmate02;?>
                </td>
            </tr>
            ・
            ・
            ・
            <tr>
                <td>
                    <?php echo $classmate32;?>
                </td>
            </tr>
        </tbody>
    </table>

発狂しそうになりました。

まだ32人分で済んでいるのですが、これが何百行にもなる生徒の名前をテーブルで表示しないといけない場合を考えないといけません。
想像したくありませんが。

行を増やすだけの処理ならfor文で済ませたいところですが、使えそうにもありません。

これが、配列を使えば簡単にプログラムすることができます。

配列の書き方は以下の通りです。

$array = [要素1,要素2,要素3,...,要素n];

そして、配列に登録した要素は以下の書き方で取り出すことができます。

$array = ["のびた","しずかちゃん","じゃいあん",.....,"すねお"];
$array[0]; // のびた
$array[1]; // しずかちゃん
$array[2]; // じゃいあん
・
・
・
$array[31]; // すねお

配列は、データを入れていくと自動で0番目から採番されていきます。

この採番された番号を使うことで、データを呼び出すことができるのです。

連想配列

普通の配列は、同じ意味合いのデータをリスト管理できるものでした。
名前のリストとか、去年1年間の給料のリストとか・・・。

異なる意味合いのデータでも、それぞれに名前を付けて配列で管理することができます。

その時に使うのが連想配列です。

生徒の5科目のテストの点数を表示するアプリを作るとしましょう。

ひとまず、変数で書くとめんどくさい&わかりにくいので、それをご紹介します。

$testScoreKokugo = 89;
$testScoreSugaku = 75;
$testScoreRika   = 97;
$testScoreShakai = 48;
$testScoreEigo   = 23;

変数名が長いし、後々管理が難しそうです。

連想配列なら、こう書くことができます。

$testScore = [
    "kokugo" => 89,
    "sugaku" => 75,
    "rika"   => 97,
    "shakai" => 48,
    "eigo"   => 23,
];

それぞれが、何のまとまりの何のデータなのか一目瞭然です。

取り出すときは配列と似ていますが、少し違います。

キーというのを使って取り出すことができます。

キーとは、「=>」の左側にかいた文字列です。

$testScpre["kokugo"]; // 89
$testScore["sugaku"]; // 75
$testScore["rika"];   // 98
$testScore["shakai"]; // 48
$testScore["eigo"];   // 23

foreach文

これでも十分便利な連想配列ですが、foreach文と組み合わせると、繰り返し処理がもっと便利になります。

foreach文は、配列の個分、数繰り返し処理をしたいときに使うことができます。
配列専用のfor文です。

foreach($array as $key => $value){
   // なんらかの処理
}

繰り返し処理したい配列を「$array」の箇所に指定すると、それぞれの要素のキーと値が、「$key」と「$value」という変数に毎回格納されます。

あとは、この 「$key」と「$value」 を使って、処理を書けばいいのです。

コメント

タイトルとURLをコピーしました