- ベストアンサー
条件分岐で複数条件の指定を簡易的にしたい
if ($key == 'keyword1' and $key == 'keyword2') この様な条件分岐をする場合に、keywordを足す度に and $key == 'keyword' と書いていかなければならないのが不便なので、これを $keywords = 'keyword1', 'keyword2'; などと一つの変数で指定してそれが反映される様にしたいのですが、こういった場合にはどうしたら良いのでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- bimson
- ベストアンサー率40% (2/5)
回答No.3
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
回答No.2
お礼
in_array($key,$keywords,TRUE)で型も確認する様にしたところ解決する事が出来ました。 もう少しマニュアルをしっかり読むべきでした。 余談ですが、Taiyonoshizukuさんのプロフィールを見て、答えそのものが無くても、一つのヒントを紐解いて答えに辿り着ける様にこれからも勉強を続けていこうと改めて思いました。 この度はご回答頂き、本当にありがとうございました。
補足
条件分岐の内容についてなのですが、記載した範囲では情報が不足していると思いましたので追記します。 実際には以下の様に、$fieldsにある配列をincludeする様な形で取り出したいという内容になります。 $fieldsは入力情報のキー名(keyword)をキーにした連想配列です。 $keysは入力情報のキー名(keyword)の配列を返します。 入力情報 キー:keyword 値:data $all_values = array(); $fields = array( "keyword1" => array("data1", "data2"), "keyword2" => array("data3"), "keyword3" => array("data4", "data5", "data6") ); $keys = array("keyword1", "keyword2", "keyword3"); foreach ($keys as $key) { if ($key === 'keyword1' && $key === 'keyword2') { $values = $fields[$key]; $all_values = array_merge($all_values,$values); unset($key); } } if ($all_values) { $n = 0; foreach ($all_values as $key => $value) { if ($n == $limit) break; echo '<p>' . $value . '</p>' . "\n"; $n++; unset($all_values[$key]); } } in_arrayをマニュアルで調べたのですが、こういった場合にも対応出来る様にするにはどうしたら良いかまではわかりませんでした。