- ベストアンサー
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をしようしようとおもったのですが,うまくいきません。 よろしくお願いします。
- みんなの回答 (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)
#1さんの回答が最善ですが、 どうしてもforeachということで、配列の中身が決まっているんであれば、 if($val==5){ echo $hoge[5]; } とか・・・ かなり荒業で実用性ないですが、このポイントに限ればありかと。 あと、$count++とかしていってもいいですよね。 それなら最初からfor使えってことですが(笑
- kirin_f
- ベストアンサー率51% (44/85)
foreachではなく、for文を使ってみては? for($i = 0 ; $i < count($hoge); $i++){ if($i == 5){ echo $hoge[$i+1]; } eles { echo $hoge[$i]; } }