• ベストアンサー

foreachのなかで次のキーを参照するには

こんばんわ, 現在PHPを学習しています。 たとえば, $hoge[0]=1; $hoge[1]=2; $hoge[2]=3; $hoge[3]=4; $hoge[4]=5; $hoge[5]=6; $hoge[6]=7; と配列があり,これをforeachで回していく際に,hogeが5になったときには,次の配列の要素である6を参照したい場合に foreach($hoge as $val){ if($val == 5){ /* $valの次の要素を見たい */ } else{ echo $val; } } をどのようにすれば,よろしいでしょうか。foreach文ではだめなのでしょうか。 nextやeachをしようしようとおもったのですが,うまくいきません。 よろしくお願いします。

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

  • ベストアンサー
noname#18290
noname#18290
回答No.3

foreachでは、元の配列の複製を対象に 繰り返し処理が行われます。next(),each()は、 元の配列に対して処理を行うので、ポインタが 異なります。 #1さんの回答で行うか、 foreach($hoge as $key => $val) {   if ($val == 5) {     echo $hoge[$key + 1];   } else {     echo $val;   } } として下さい。

その他の回答 (2)

  • the845t
  • ベストアンサー率33% (246/743)
回答No.2

#1さんの回答が最善ですが、 どうしてもforeachということで、配列の中身が決まっているんであれば、 if($val==5){ echo $hoge[5]; } とか・・・ かなり荒業で実用性ないですが、このポイントに限ればありかと。 あと、$count++とかしていってもいいですよね。 それなら最初からfor使えってことですが(笑

  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.1

foreachではなく、for文を使ってみては? for($i = 0 ; $i < count($hoge); $i++){ if($i == 5){ echo $hoge[$i+1]; } eles { echo $hoge[$i]; } }

関連するQ&A

専門家に質問してみよう