ループの減算表示について

このQ&Aのポイント
  • PHPのループ処理において、加算表示はうまくいくが減算表示がうまくいかない場合がある。
  • for文の条件式を変更しても減算表示が機能しない場合、他の方法を検討する必要がある。
  • ループ処理において減算する方法はありますが、一般的には加算する方が実現しやすい。
回答を見る
  • ベストアンサー

ループの減算表示

下記記述 <!--start--> <?php $get_no = file_get_contents('./today-no.txt'); for($a = 1; $a < $get_no; $a++) { #一個ずつ進む echo "<a href='./next".$a.".php' target='_blank'>"; #次のページ echo "No.".$a; #ナンバーの表示 echo "</a><br>"; } ?> <!--end--> で1~指定数値の加算表示はうまくいったのですが、減算方法が分かりません for($a = 1; $a < $get_no; $a++)を for($a = $get_no; $a < 1; $a--)に変更してもうまく作動せず真っ白になってしまいました。減算するという方法は無理なのでしょうか? 詳しい方がおられましたら解説の方をよろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

ループ継続条件の不等号の向きを変えないとね。 今のままだと最初から$a<1が満たされないからループは一回も実行されないよ。

petaturu
質問者

お礼

for($a = $get_no; $a >= 1; $a--)でうまくいきました! ありがとうございます。

関連するQ&A

  • ループ処理について

    テキストファイルにある数字が存在するかしないかの判断をしたいですがうまくいきません、どこが悪いのでしょうか・・・。 <?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のようにしたいのですが、 どう記述すれば上手い具合にいくでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP
  • phpで5で割って余りを表示させない方法

    phpで5で割って余りを表示させない方法を探しています。 例えば <?php for ($i = 1; $i < 15; $i++) { echo $i; if ($i % 5 == 0) { echo "<br />"; }} ?> を実行させた場合 12345<br/> 678910<br/> 11121314 となりますが、この場合11から14までを表示させないようにすればどうすればできますか?

    • 締切済み
    • PHP
  • 掲示板の表示について

    掲示板を作っています。 書込みなどの表示がうまくいかず困っています。 試行錯誤していますが、うまくいきません。 下記のように表示したいのですが、 タイトル.ああ               名前.いい 記事NO.うう 下記のように表示されてしまうのです。 タイトル.ああ いい うう 名前.ああ いい うう 記事NO.ああ いい うう 問題のソースは以下の通りです。 <?php $data = file("../php/test1.txt"); list($title, $namae, $body) = explode("\t", $data); for($i=sizeof($data)-1;$i>=0;$i--){ print "タイトル.${data[$i]}<br>\n名前.${data[$i]}<br>\n記事NO.${data[$i]}<br>\n<hr>"; } ?> どなたかおわかりの方いましたらお願い致します。

    • ベストアンサー
    • PHP
  • WordpressのRSS取得条件

    以下のコードに2010年以降のフィードのみ表示させるようにするにはどうすればよいですか? <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array('RSSフィード')); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(10); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <dl> <?php if ($maxitems == 0) echo '<dt>No items.</dt>'; else foreach ( $rss_items as $item ) : ?> <dt> <?php echo $item->get_feed()->get_title(); ?><br /> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a> </dt><?php endforeach; ?></dl>

    • 締切済み
    • PHP
  • ループ内での置換方法について

    ループ内での置換方法について 以下の内容で置換を行ってみたのですが、書き方が悪いのかうまく取得できません。 $hoge="現在のナンバーは《no》です"; for(1..3){ $hoge=~s/《no》/$_/g; print"$hoge<br>"; } 結果、noの部分は全て1となりました。 私の予定では、1、2、3と順に表示される予定でしたが・・・。 現在のナンバーは1です 現在のナンバーは2です 現在のナンバーは3です と表示されるようにするにはどのように書けばよろしいでしょうか。 どなたか教えていただけませんか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • PHP 変数 aタグで囲いたい

    失礼します。echo の中の変数をaタグで囲いたいのですがやり方がわかりません。 よろしくお願いします。 foreach($files as $file_path => $file_info) { if (!$file_info->isFile()) { continue; } echo 'file path : ' .$file_path ."</br>"; echo 'file size : '. $file_info->getSize() ."</br>"; echo 'contents : '. file_get_contents($file_path) ."</br>"; }

    • ベストアンサー
    • PHP
  • isset関数の動作と入力チェックについて

    issetの動作について疑問に思った事があるので、質問させて下さい。 以下のようなテスト用のphpを作成しました。 issettest.php <?php $a = $_GET["a"]; if(isset($_GET["a"])){ echo "\$GETに[".$_GET["a"]."]が入っています。<br>"; } if(isset($a)){ echo "\$aに[".$a."]が入っています。<br>"; } if(!isset($_GET["a"])){ echo "\$GETは空です。<br>"; } if(!isset($a)){ echo "\$aは空です。<br>"; } ?> ./issettest.php と実行すると、 $GETの値は空です。 $aの値は空です。 ./issettest.php?a=test と実行すると $GETに[test]が入っています。 $aに[test]が入っています。 ./issettest.php?a= と実行すると $GETに[]が入っています。 $aに[]が入っています。 となります。 これがissetの正常な動作なのでしょうか? 例えば、入力フォームを使いGETやPOSTでの値を送信する場合、入力フォームに値が入力されたかどうかを判定するにはissetは使えないのでしょうか? わかりづらい質問で申し訳ありませんが、先輩方の回答お待ちしています。 質問に不備などありましたらご指摘下さい。

    • ベストアンサー
    • PHP
  • header("Location: ")でページ移動しない;

    <?php $image_no = $_GET['image_no']; if($image_no == ""){ $image_no = 0; } if($image_no == 10){ header("Location: http://www.test/i/"); } ?> <img src="../img/test<?php echo $image_no;?>.jpg"> <?php echo $image_no;?> <br/> <a href="test.php?image_no=<?php echo $image_no + 1;?>">次へ</a> こんなカンジで、『次へ』のリンクをクリックすると、画像が切り替わるものを書いたんですが、$image_no == 10になったら、別のページへジャンプしたいんですが、うまくいきません。 10回目でエラーになってしまいます。 どうやったらうまく違うページへジャンプできるのでしょうか?

    • ベストアンサー
    • PHP
  • ポイント加算・減算プログラム?

    こんにちは。今簡単なポイントを加算・減算するようなプログラムを作ろうとしてるのですが、全然わかりません/(-_-)ヽ 内容は、 画面上の、あるボタン((1)ボタンとします)をクリックするとポイントが加算され、違うページの違うボタン((2)ボタンとします)をクリックするとポイントが減算されるというものです。プラス、これはユーザごとに分けて個別に表示させたいのです。(ユーザAがHPにアクセスするとA個人のポイントが表示される。ユーザBがHPにアクセスするとB個人のポイントが表示される。)感じです。 お願いします。

  • phpの掲示板で新しい順に表示したい

    phpで掲示板を作っています。 新しい順に表示したいのですが、やり方がわかりません。 古い順に表示するやり方はわかるのですが、どうやったらよいでしょうか。 古い順のソースです <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> どうかわかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP