Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

変数と配列

変数と配列について

複合型[変数の型]

複合型
空白型名説明
array配列型array関数により指定された配列
objectオブジェクト型new命令によりオブジェクトのインスタンスを変数に作成

スカラー型とは、常に一つの値を保持している変数のことでしたが、一方でPHPには、複数の値を格納する変数を扱うことができます。このような変数のことを「非スカラー変数」と呼びます。この非スカラー変数にも様々な種類がありますが、その代表的な非スカラー変数として「配列」があります。

なお、オブジェクト型のオブジェクトとは、「オブジェクト指向」という概念に基づいたプログラミング手法のことですが、ここでは配列を重視して解説していきます。

配列に値を代入する

配列は変数名の最後に「[]角かっこ」を付けると配列として機能します。また変数と同じで、値を代入するとデータの型を考えずに使用することができます。

配列$animalにインデックスを指定して値を代入
<?php
    $animal[] = "牛";
    $animal[] = "馬";
    $animal[] = "鹿";

    echo "$animal[ 0 ]<br />¥n";
    echo "$animal[ 1 ]<br />¥n";
    echo "$animal[ 2 ]<br />¥n";
?>
実行結果
牛
馬
鹿

前述のスクリプトでは、インデックスに値を指定せずに、 "牛"などの値だけを代入しています。また、インデックスの値を指定していないので、自動的に「牛」、「馬」、「鹿」と表示されています。

配列$animalにインデックスを指定して値を代入
<?php
    $animal[ 2 ] = "牛";
    $animal[ 1 ] = "馬";
    $animal[ 3 ] = "鹿";

    echo "$animal[ 1 ]<br />¥n";
    echo "$animal[ 2 ]<br />¥n";
    echo "$animal[ 3 ]<br />¥n";
?>
実行結果
馬
牛
鹿

前述のスクリプトでは、インデックスを指定して値を代入しています。インデックスで指定した順番に表示されていることがわかります。

ループを使って配列の値を出力する

配列のインデックスに続いた数値が割り当てられている時には、ループ処理を使用して、配列の値を出力することができます。

このループ処理により、より少ないコードを記述することが可能になります。

forループ処理で配列の値を出力
<?php
    $animal = array( "牛", "馬", "鹿", "犬", "猫" );
    $number = count( $animal );

    for( $i = 0; $i < $number; $i++ ) {

        echo "$animal[ $i ]<br />¥n";
    }
?>
実行結果
牛
馬
鹿
犬
猫

前述のスクリプトでは、配列$animalのインデックスを0から割り当てているので、出力する際に何度もechoを記述することがなく、ループ(繰り返し)の処理によって出力されています。また、count関数により配列$animalの要素、今回の場合は五つを取得しつつ、forの条件(要素が五つなので五回繰り返す)でループがなされています。「$i++」はループ処理が実行されるたびに、「$i = 0;」へ1がプラスされるという意味です。この「$i++」によってループされるたびに0回目は「牛」だよー、1回目は「馬」だよー、2回目は「鹿」だよー、3回目は「犬」だよー、4回目は「猫」だよーと教えています。

上記のスクリプトの「$i = 0;」の値を「$i = 2;」とした場合は、「0」が「牛」、「1」が「馬」、「2」が「鹿」、「3」が「犬」、「4」が「猫」となっているので、実行結果は「鹿」、「犬」、「猫」となります。