「PHP」の「配列・連想配列」と「スーパーグローバル」変数を勉強しよう!!

PHPでの「配列」「連想配列」の機能や「多次元配列」について勉強していきたいと思います。

「まとめてデータを扱うことができる」機能ですが、「データ型」について柔軟性のあるPHPで配列を利用する方法とWEBアプリケーションでよく利用される「2次元配列」についても使い方を身に付けたいと思います。

他にも配列を便利に利用できる「関数」の使い方を見ていきましょう。

「配列」の作り方

配列を作るためには、

配列変数名 = array(値1, 値2・・・);

のように書いていくことで、配列を作ることができます。

配列を利用したプログラムを、

<?php
$ramens = array('味噌','醬油','とんこつ','塩','鶏ガラ');
?>
<!DOCTYPE html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
        <h1>ラーメンメニュー</h1>
        <ul>
            <?php foreach( $ramens as $ramen ){ ?>
                <li><?php print $ramen; ?>ラーメン</li>
            <?php } ?>
        </ul>
    </body>
</html>

のように作ってみました。

このプログラムを実行すると、

配列の利用イメージ

のように表示されます。

「連想配列」の作り方

「連想配列」は、「キー」と「値」をセットで格納できる機能です。

プログラムを書く際には、

連想配列変数名 = array(
    'キー名1 => '値1',
    'キー名2 => '値2'
            ・
            ・
);

のように書いていきます。

「連想配列」を利用したプログラムは、

<?php
$favorite = array(
    '一番好きなドリンクの種類' => 'フルーツ系炭酸飲料',
    '一番好きなお菓子の種類' => 'スナック菓子',
    '趣味' => 'ゲーム'
);
?>
<!DOCTYPE html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
        <h1>好きなもの一覧</h1>
        <ul>
            <?php foreach( $favorite as $type => $content ){ ?>
                <li>「<?php print $type; ?>」は、「<?php print $content; ?>」です。</li>
            <?php } ?>
        </ul>
    </body>
</html>

のように作ってみました。

ブラウザの実行結果を見てみると、

連想配列の利用イメージ

のようになります。

「好きなものの種類」と「好きなもの」をセットで管理できるのは便利ですね。

「種類の違うもの」を管理するためにはかなり良さそうです。

実際の使い方をエンジニアさんに聞いてみたいのですが、「値の受け取りとかかな~よく使うけどね。」と教えてもらいました。

前に出てきたあれですね。

「$_GET」とかで受け取るやつ。

でも、「値の受け取り」の仕組みはまだわかっていません。

ここで、そろそろちゃんと勉強していきたいと思います。

多次元配列

「多次元配列」は、「配列の中に配列を入れることができる仕組み」なのですが、

array(
    array(要素1, 要素2・・・)
);

のように書くことで、配列の中にどんどん配列を入れていくことができます。

ただ、あまり深い配列は使わないとのことで、「2次元配列」について学んでいきたいと思います。

そして、「サンプルプログラム」を作ってみました。

<?php
$seiseki = array(
    array(
        '生徒id' => 1,
        '国語' => 82,
        '数学' => 91,
        '英語' => 80
    ),
    array(
        '生徒id' => 2,
        '国語' => 73,
        '数学' => 81,
        '英語' => 95
    ),
    array(
        '生徒id' => 3,
        '国語' => 85,
        '数学' => 71,
        '英語' => 81
    )
);
?>
<!DOCTYPE html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
        <h1>生徒の成績一覧</h1>

            <?php foreach( $seiseki as $student ){ ?>
            <ul>
                <?php foreach( $student as $type => $content ){ ?>
                    <li>「<?php print $type; ?>」は、「<?php print $content; ?>」です。</li>
                <?php } ?>
            </ul>
            <?php } ?>
    </body>
</html>

このプログラムを実行すると、

多次元配列の利用イメージ

のように表示され、「配列の要素」がすべて出力されています。

「foreach」文を2回ループさせないといけないので、配列の多次元化が進むと、出力処理も複雑になっていきそうですね。

スーパーグローバル変数

「なんて名前を付けるんだ」と思ったのが素直な印象。

「スーパー」でなおかつ「グローバル」な変数だなんて、さぞかしスゴイ機能を持っている変数なんだろうなと、名前から勝手に推測してしまいます。

この変数は、PHPが勝手に作ってくれて、なおかつ「どこからでも使える変数」とのことで、いろんな情報が詰まっているので、「情報の宝庫」的な変数のようです。

「スーパーグローバル変数」の詳しい中身は、

→「スーパーグローバル変数」

に書いてありました。

1つ1つの中身を見ていたら、よくわからなくなってきたので、エンジニアさんに聞いてきました。

「$_GET」というのは、「GET」という方法で送られたデータを受け取ることができて、もう一つ「$_POST」というものがあり「POST」という方法で送られたデータを受け取る際に利用するそうです。

そもそも「GET」と「POST」の意味がよくわからないので、結局「へぇ~」という感じで話があまりできませんでした。

自分で調べてみると、そもそも、インターネットの通信規約の「HTTP」という方法が関連しているみたいです。

URLに書いているあれだ。くらいしかわからないので、「GET」「POST」を使うことで、サーバーにデータを送ることができるらしい。

この2つの違いを調べてみると、

「GET」はURLの最後に「送信データ」を追加してから、サーバーにデータを送るらしく、「POST」はURLには「送信データ」は追加されない、という違いがあるそう。

安全性を考慮して「POST」を利用する方がいいみたい。

そこはなんとなくわかるな~「送ったデータが見えてしまう」っていうところが良くない。

まだまだいろんな「スーパーグローバル変数」があるので、少しずつ調べながら使っていきたいと思います。

→(前へ)「PHP」の「条件分岐」と「繰り返し」の書き方を学ぶ

→(次へ)「PHP言語」の「関数」の作り方と「便利」な関数の使い方を学ぼう!

→「Twitter:@satoru78888」

HOMEへ