お世話になっております。
この度は、タイトル通りですが、「配列に特定の複数の値が入っているかチェックする処理」に関してお聞きしたいと思います。
私が考えるコードでも上の処理は実現可能だと思うのですが、他の経験のある方たちはどのような書き方、処理を選ばれるのか知りたいので、ご教授いただければ幸いです。
この処理の具体的シチュエーション
・チェックボックスから「初級(beginner),中級(middle),上級(advanced)」を複数選べるようになっており、選ばれた値が入った配列を、どの値が入っているかを調べて処理を分けたい。
考えられる組み合わせは、(初級、中級、上級、初級中級、初級上級、中級上級、初級中級上級)
以下私が考えた処理です。
PHP
1 2$difficulty = array('beginner'); /* これは初級というチェックボックスのみチェックされた時の例です*/ 3 4/*初級のみの場合*/ 5if(in_array('beginner', $difficulty)){ 6 7}/* 中級のみの場合 */ 8elseif(in_array('middle', $difficulty)){ 9 10}/* 上級のみの場合 */ 11elseif(in_array('advanced', $difficulty)){ 12 13}/* 初級と中級の場合 */ 14elseif(in_array('beginner', $difficulty) && in_array('middle', $difficulty)){ 15 16}/* 初級と上級の場合 */ 17elseif(in_array('beginner', $difficulty) && in_array('advanced', $difficulty)){ 18 19}/* 中級と上級の場合 */ 20elseif(in_array('middle', $difficulty) && in_array('advanced', $difficulty)){ 21 22}/* すべてチェックされた場合 */ 23elseif(in_array('beginner', $difficulty) && in_array('middle', $difficulty) && in_array('advanced', $difficulty)){ 24 25}
というコードを考えたのですが、もっとスマートな書き方、もしくはこの書き方に問題がある場合は指摘して頂けますと有り難いです。
初歩的な質問ですが、どうぞよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/10/02 00:43