- 締切済み
ループ処理について
テキストファイルにある数字が存在するかしないかの判断をしたいですがうまくいきません、どこが悪いのでしょうか・・・。 <?php $log=file("1.txt"); for($i=1;$i<count($log);$i++){ echo"<a href=1.php?no=$i>$i</a> ";} echo"<BR><BR><BR><BR><BR>"; if ($_GET["no"]) { $no = $_GET["no"]; $log=file("1.txt"); for($i=0;$i<count($log);$i++){ $list=explode("<>",$log[$i]); if($no==$list[1]){echo"$list[0]"."はOk<BR>";} elseif($no!=$list[1]){echo"";} } if($no!=$list[1]){echo"存在しません";} } ?> 1.txtの中身は 7<>7<> 8<>7<> 5<>5<> 6<>5<> 3<>3<> 4<>3<> 1<>1<> 2<>1<> 右の数字(7・5・3・1)が存在確認対象で、 ?no=数字で呼び出し、getでの呼び出し数字が右に存在すれば左の数字を表示します。 存在しなかったら 存在しません という言葉を1回だけ表示します。 no=1とno=2 no=4 no=6だけ上手くいくのですが、他はokと存在しませんが両方混在してしまいます。no=3 5 7も1 2のようにしたいのですが、 どう記述すれば上手い具合にいくでしょうか? よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- calltella
- ベストアンサー率49% (317/635)
10行目から if($no==$list[1]){ $value= $list[0]; } これでいかがですか?
- calltella
- ベストアンサー率49% (317/635)
<?php $log=file("1.txt"); for($i=1;$i<count($log);$i++){ echo"<a href=".$_SERVER['PHP_SELF']."?no=$i>$i</a> ";} echo"<BR><BR><BR><BR><BR>"; if ($_GET["no"]) { $no = $_GET["no"]; for($i=0;$i<count($log);$i++){ $list=explode("<>",$log[$i]); if($no==$list[0]){ $value= $list[1]; } } if ($value){ echo $value."はOK<BR>"; }else{ echo "存在しません"; } } ?> あまり綺麗なコードではないですがこれでいかがでしょう?
補足
2を押すと1の内容が、4は3が、6は5が表示されてしまいます。 2・4・6はそもそも存在しないので(list1とnoを比較しているので)、存在しませんと表示したいのですが・・・。
お礼
回答ありがとうございます、勉強になりました!