• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:foreachで無限ループ?)

foreachで無限ループ?PHP配列ループ方法を教えてください

このQ&Aのポイント
  • PHPのforeach文を使用して配列をループしている際に、ifとelseを使用するとフリーズしてしまう問題が発生しています。
  • 無限ループが発生しているのかどうかを確認していただきたいです。
  • 解決方法を教えていただきたいです。

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

  • ベストアンサー
noname#24096
noname#24096
回答No.1

どんなデータが入ってきてるのか どんな処理をしようとしてるのか 全く不明なので何とも言えませんが…。 以下のように単純化してデバッグされたらいかがでしょう 1.foreachだけ foreach ($lines as $line) { print "$line<br>"; } 2.foreachにlistを加えてみる foreach ($lines as $line) { print "$line<br>"; list($DATE,$ID,$POINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,)= split(",",$line); print "$DATE<br>"; print "$ID<br>"; print "$POINT<br>"; ・・・以下略 } 3.foreach、listにifを加えてみる foreach ($lines as $line) { list($DATE,$ID,$POINT,$NAME,$EMAIL,$TEL,$PREF,$SEX,$AGE,$blood,$body,$length,$type,$why,$PASS,$PROF,$BOX,$DAY_LIMIT,$A_ID,$MILE_POINT,)= split(",",$line); if($EMAIL == $_POST{"EMAIL"} && $PASS == $_POST{"PASS"}){ print "$line<br>"; }else{ print "$line<br>"; } }

titikun00
質問者

お礼

さっそくの返信ありがとうございます。 おっしゃるように1.2のように切り分けてみると問題ないのですが elseを使うとフリーズしてしまいます。

その他の回答 (1)

noname#24096
noname#24096
回答No.2

#1です。 不足部分を適当に付加して実行しましたが、私の環境では特に問題ありませんでした。 恐らくこれだけで完結したスクリプトではないと思いますが情報が足りないのでこれ以上は分かりません。 if~elseの問題ではなく何か別の原因のような気がします (例えば配列の件数が多すぎるとか…) お役に立てず申し訳ありません。

関連するQ&A