セレクトボックスが4個ある画面があります。
4個のセレクトボックスには全て同じ選択肢が設定されています。
同じ選択肢を選ばれていないか、チェックが必要です。
重複を除去して、配列の数が異なっていれば、重複して選択していると判定
if文で1個目の選択肢と2個目の選択肢の重複はしていないか、1個目の選択肢と3個目の選択肢は重複していないか、とチェックもできます。
今回は、セレクトボックスで選択された選択肢のvalueを配列に入れ、重複した配列の要素を除去することで、配列の要素数が異なっていれば、重複があったと判定することにしました。
ソースコードは以下のようになります。
$workArr[] = $_POST["category1"]; $workArr[] = $_POST["category2"]; $workArr[] = $_POST["category3"]; $workArr[] = $_POST["category4"]; $uniqueArr = array_unique($workArr); if (count($workArr) !== count($uniqueArr)) { // 選択肢が重複 }
if文で判定するより、随分楽に判定できました。