プロが教えるわが家の防犯対策術!

こんばんわ,

現在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をしようしようとおもったのですが,うまくいきません。

よろしくお願いします。

A 回答 (3件)

foreachでは、元の配列の複製を対象に


繰り返し処理が行われます。next(),each()は、
元の配列に対して処理を行うので、ポインタが
異なります。

#1さんの回答で行うか、

foreach($hoge as $key => $val) {
  if ($val == 5) {
    echo $hoge[$key + 1];
  } else {
    echo $val;
  }
}

として下さい。
    • good
    • 0

#1さんの回答が最善ですが、


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

それなら最初からfor使えってことですが(笑
    • good
    • 1

foreachではなく、for文を使ってみては?


for($i = 0 ; $i < count($hoge); $i++){
if($i == 5){
echo $hoge[$i+1];
} eles {
echo $hoge[$i];
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています