PHPでは、配列の添字として文字列を使うことができます。
下記のように書くことができます。
$price["りんご"] = 100;
このような添字のことを、キー(key)といい、
キーを使った配列はサンプルコードをご覧ください。
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="../style.css"> </head> <body> <?php //キーを指定して、値を代入 $price["みかん"] = 100; $price["いちご"] = 70; $price["ぶどう"] = 120; $price["もも"] = 40; $price["りんご"] = 160; ?> <table border="2"> <tr> <th>在庫状況</th> </tr> <?php echo "<tr><td>"; echo "みかんは{$price["みかん"]}円です。"; echo "</td></tr>"; echo "<tr><td>"; echo "いちごは{$price["いちご"]}円です。"; echo "</td></tr>"; echo "<tr><td>"; echo "ぶどうは{$price["ぶどう"]}円です。"; echo "</td></tr>"; echo "<tr><td>"; echo "ももは{$price["もも"]}円です。"; echo "</td></tr>"; echo "<tr><td>"; echo "りんごは{$price["りんご"]}円です。"; echo "</td></tr>"; ?> </table> <br> <hr> <br> <table border="2"> <tr> <th>商品名</th> <th>値段</th> </tr> <?php foreach( $price as $name => $value ){ echo "<tr>" . "<td>{$name}</td><td>{$value}円</td>" . "</tr>"; } ?> </table> <br> <hr> <br> <?php $country[0] = "日本"; $country[1] = "アメリカ"; $country[2] = "カナダ"; $country[3] = "台湾"; $country[4] = "ベトナム"; foreach( $country as $num => $name ){ echo "国No.{$num}:{$name}<br>"; } ?> </body> </html> |
この配列は、「みかん」「いちご」「ぶどう」という文字列(キー)に対して、
それぞれ「100」「70」「120」という値を格納してます。
キーと値の組合せを格納できます。
キー値と繰り返し文
配列を扱うとき、foreach文という特殊な繰り返し文を
使うことができます。キー用の変数と値用の変数を設け、
配列のキーと値を格納することができます。
foreach( $配列名 as $キー用の変数=>$値用の変数){
・・・
}
サンプルコードの62行目~68行目をご覧ください。
62行目:「=>」はひとつの繋がりです。「=」と「>」の間には、
スペースを開けません。
キー用の変数として「$name」を
値用の変数として「$value」を使いました。
foreach文を利用することで、配列の要素のキーと値が、
それぞれの変数に格納されます。
下記のようにすることで、
キーの格納を省き、値だけを格納することができます。
foreach( $配列名 as $値用の変数){
・・・・・
}
サンプルコードだと以下のように掛けます。
foreach( $price as $value ){
echo "<tr><td>{$value}円</td></tr>";
}
添字と繰り返し文
foreach文を使った出力方法で、配列の添字を数値をしたら、
どう出力されるのか、
サンプルコードの77行目~85行目を実行すると、
0~(要素数-1)までの添字が出力されます。
foreach文は、どの配列を扱うのにも便利なので、頭の片隅に
置いとくといいかもしれません。