- ベストアンサー
if文の処理について
お世話になります。 switch文の中に、 「もし3桁目があれば、計算(カウント)し、 なかったら計算しない」 というif文を作りたいと思っています。 しかし、処理の仕方が全くわかりません。 初歩的な質問なのですが、お力添え頂けないでしょうか? よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
$count = array ("あ","い","う") ; のような配列が有るとき count($count); >3 のようにして配列の要素数を調べることができます。 この数を利用して、3つめの要素があるかどうか調べることができます。 また、 isset($count[2]); としてTRUEが返ってくればその変数は存在する FALSEが返ってくればその変数は存在しないと判定できます。 なので、 if(isset($count[2])){ #3つめの要素が有るとき処理する } というようにすればいいです。
その他の回答 (4)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#4>if(isset($count[3])){ 老婆心ですが・ $count = array ("あ","い","う") ; の時 $count[2]が"う"です。 0から始まるのでそうなります。 $count[3]は、4つめの要素になります
お礼
そうでした。 配列は0からカウントする。。。 ご指摘真にありがとうございます。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 >列のデータを取得し、区切りマークで分割したものを >配列に入れ、その3番目があったなら、 たとえば、カンマで区切られていて、 か,き,く,け,こ という文字列が送られてきてそれを配列に分解し、 3番目の要素があったらカウントするということでしょうか? それとも元々指定文字が用意されていて $str = array ( "あ", "い", "う" ); $val = "か,き,く,け,こ"; という文字が送られてきて$valに$strの3番目の"う"があるかどうかという ことでしょうか。
補足
三度ありがとうございます。 前者の >たとえば、カンマで区切られていて、 >か,き,く,け,こ >という文字列が送られてきてそれを配列に分解し、 >3番目の要素があったらカウントするということでしょうか? こちらのことになります。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 switchの場合、何らかの変数の中身で処理を変える目的で使います。 例えば $val = 2; switch ( $val ) { case 1: // $valが1だった場合の処理 break; case 2: // $valが2だった場合の処理(これを実行) break; case default: // 1でも2でもなかった場合 break; } なにか送られてきた文字の中に配列で用意した3番目の文字があったら 計算を行うってことでしょうか? ちなみに、配列の左から数えて3番目は$array[2]になります。 (0から添字が開始の為)
補足
>なにか送られてきた文字の中に配列で用意した >3番目の文字があったら計算を行うってことでしょうか? こんにちは。 ご指摘のとおりです。 1列のデータを取得し、区切りマークで分割したものを 配列に入れ、その3番目があったなら、 カウント(++)する、というようにしたいと思っています。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 3桁目があればということは100以上ってことですか? それとも文字列が3桁以上あった場合でしょうか?
補足
こんにちは。 早々の対応どうもありがとうございます。 説明不足で申し訳ありませんでした。 配列の中に文字列が入っていて、その3番目があれば・・・ というようにしたいと思っています。 $count = array ("あ","い","う") ; switch($count[3]) { ですので、3桁目ではなくて、3番目、ということですね。 全然文章違いました・・・。 よろしくお願いします。
お礼
早速の回答ありがとうございます。 if(isset($count[3])){ というようにして、処理がつながりました。 考え方も教えていただいて、勉強になりました。