ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PHP:セレクトボックスの選択の重複のチェック方法

セレクトボックスが4個ある画面があります。
4個のセレクトボックスには全て同じ選択肢が設定されています。
同じ選択肢を選ばれていないか、チェックが必要です。

重複を除去して、配列の数が異なっていれば、重複して選択していると判定

if文で1個目の選択肢と2個目の選択肢の重複はしていないか、1個目の選択肢と3個目の選択肢は重複していないか、とチェックもできます。
今回は、セレクトボックスで選択された選択肢のvalueを配列に入れ、重複した配列の要素を除去することで、配列の要素数が異なっていれば、重複があったと判定することにしました。

f:id:AJYA:20180727060258p:plain
unsplash-logoŠtefan Štefančík

ソースコードは以下のようになります。

$workArr[] = $_POST["category1"];
$workArr[] = $_POST["category2"];
$workArr[] = $_POST["category3"];
$workArr[] = $_POST["category4"];

$uniqueArr = array_unique($workArr);

if (count($workArr) !== count($uniqueArr)) {
	// 選択肢が重複
}

if文で判定するより、随分楽に判定できました。