配列はJavascriptでも出て来ましたが、まずは配列の特性を復習しましょう。
通常、変数は1つの値しか入れる事が出来ず、新しい値を入れると上書きされてしまいます。
一方、配列ではひとつの箱に複数の値を入れることができます。データベースと連動させる事の多いPHPではこの配列の使い方が非常に重要になってきます。
arrayを使った配列
<?php $color = array('red', 'blue', 'green'); echo $color[0]; ?>
arrayを使わないやり方
<?php $color[0] = 'red'; $color[1] = 'blue'; $color[2] = 'green'; echo $color[1]; ?>
配列に入っている値をすべて表示させる
配列に入っている値をすべて表示させたい場合、1つ1つ「echo文」で表示させる事は可能ですが、プログラム的には正しくありません。
配列の値を「あるだけすべて表示させたい」場合、便利なのが「foreach文」です。
foreach文は、配列の要素がある分だけ繰り返し処理するという内容の文です。
<?php $color = array('red', 'blue', 'green'); foreach($color as $value){ echo $value . '<br>'; } ?>
count関数
count関数を使っても、同じ事が出来ます。count関数を使うと、配列に入っている値の数が$countに代入されます。
<?php $color = array('red', 'blue', 'green'); $count = count($color); for ($i = 0; $i < $count; $i++) { echo "$color[$i]<br>"; } ?>
連想配列
配列には、変数の箱の中身に 0,1,2……と背番号のように番号を振り、その番号を指定することでデータを指定するという性質がありましたが、連想配列では、番号のかわりに名前をつけて管理することができます。
簡単に言うと配列は背番号(ID)でしか管理出来ないのに比べて、連想配列は好きに名前を付けて管理出来る利点があります。
配列変数名 = array( キー=>値1, キー=>値2, キー=>値3・・・);
<?php $color = array('red' => '真っ赤', 'blue' => '真っ青', 'green' => '新緑'); echo $color['blue']; ?>
<?php $present = array ( '長崎' => 'チャンポン', '名古屋' => '手羽先', '沖縄' => '泡盛' ); // キーを指定して、値を取得します echo $present['長崎']; echo '<br>'; // キーを指定して、値を取得します echo $present['名古屋']; echo '<br>'; // キーを指定して、値を取得します echo $present['沖縄']; echo '<br>';
連想配列を使う事でフォームのチェックボックスのように複数の解答があるような場合にも対応が出来ます。
<form action="sample.php" method="post"> <p>好きな色(複数回答可): <input type="checkbox" name="color[]" value="black">黒 <input type="checkbox" name="color[]" value="red">赤 <input type="checkbox" name="color[]" value="blue">青 <input type="checkbox" name="color[]" value="green">緑 </p> <p><input type="submit" value="送信"></p> </form>
データを受け取る側のPHP
<?php echo '<p>好きな色: '; foreach( $_POST['color'] as $value ){ echo "{$value}, "; } echo '</p>'; ?>