• ベストアンサー

ループ処理を抜けた時点での処理回数を表示したい

今、以下のような「green」が配列の何番目にあるのか調べるプログラムを考えています。 具体的な処理としては、配列の値を順番に調べて「green」を見つけたらループをぬけて何番目にあったかを表示する、といった処理になります。 ただ、現時点ではループをぬけた時何番目だったのかを取得できないでいます。 $numを取得して表示するにはどのような処理を行えばよいでしょうか。 解説していただけると幸いです。 ---プログラム--- class hoge{ function hoge(){ $this->color = array("red", "blue", "pink", "white", "black", "gold", "yellow"...,"green",...); } function test(){ for($i = 0;$i < count($this->color);$i++){ if($this->color[$i] == 'green'){ echo $this->color[$i]."\n"; break;###ここでループをぬける } } echo "緑は${num}番目"; } } $a = new hoge(); $a->test(); ---

質問者が選んだベストアンサー

  • ベストアンサー
  • JAWS55
  • ベストアンサー率38% (176/452)
回答No.1

一致したときのループカウンタの $i にループ回数が入っていますから、それを $num に代入すれば? と言うような事でしょうか?

tadao1213
質問者

お礼

ご解答ありがとうございました。 $num = $i; を追加して解決できました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

keyを指定して配列をつくっていないならこんなんでいいんじゃないですか? print array_search("green",$this->color)."番目";

tadao1213
質問者

お礼

>keyを指定して配列をつくっていないならこんなんでいいんじゃないですか? このやり方でも表示できました。 こんなやり方もあるんですね。 ご解答ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A