HTMLフォームからデータを配列で受取る

フォームのチェックボックス等複数選択する場合は、HTMLでinput要素のname属性を配列にして送信してサーバーで配列で受け取る方が効率的です。
試してみたことくを忘れないようサンプルを記録しておきます。

1.HTML
category[キー]の配列でvalue属性が送られます。

 <form action="http://sample.sakuraweb.com/HTML5/form22.php" method="POST">
  <p>どのようなジャンルのショップをよく利用しますか?</p>
  <p>
    <input type="checkbox" name="category[fation]" value="on">ファッション
    <input type="checkbox" name="category[helth]" value="on">美容・健康
    <input type="checkbox" name="category[food]" value="on">食品・ドリンク
    <input type="checkbox" name="category[computer]" value="on">コンピュータ・家電
    <input type="checkbox" name="category[media]" value="on">CD・DVD・書籍
    <input type="checkbox" name="category[ather]" value="on">その他
  </p>
  <p><input type="reset" value="リセット"> <input type="submit" value="送信"></p>
 </form>

2.サーバー(PHP)
$_POST[“category”]を配列でHTMLで設定したvalue属性を受け取ることで、処理がしやすくなります。

<?php
$category = array('fation','helth','food','computer','media','ather');
if(is_array($_POST["category"])) :
  foreach($category as $catkey) :
    if(isSet($_POST["category"][$catkey]) && $_POST["category"][$catkey]=='on') :
      echo $catkey . 'はonです' . '<br>';
    else :
      echo $catkey . 'はoffです' . '<br>';
    endif;
  endforeach;
else :
  echo 'カテゴリは配列ではありません<br>';
endif;
?>