ループを2重でする場合の処理 - PHPプロ!Q&A掲示板

2506

  • 0P

ループを2重でする場合の処理

質問日時 / 2010年2月8日 17:55 (最終編集:2月8日 17:57)    回答数 / 4件

Questioner:  matsu2009  このエントリーをはてなブックマークに追加 

キーワード / for ()    if ()    二重 ループ   

初心者です。
現在、更新情報のような短文のものをテーブルでループしようと思っているのですが、最初の3件には「NEW」のような文字か画像を入れたいと思っています。

一応以下の記述で動いているのですが、勉強を兼ねてbreak()等を使って、二重ループ? のような形で記述できないものかと考えています。 が、いまいち二重ループが分からないです。
どなたか、アドバイスいただける方 宜しくお願いします。
※実施はもうちょっと echoで出力するテーブルの記述が多いのですが省略しています。



  1. <table>
  2. <?php
  3. for ($a = 0$a <10$a++){
  4. if ($a < 3){
  5. echo "<tr><td>「NEW」等をつける</td></tr>
  6.       <tr><td>「短文」{$tanbun[$a]}</td></tr>";
  7.       }
  8.     else{
  9.     echo "<tr><td>「短文」{$tanbun[$a]}</td></tr>";
  10.     }
  11. }
  12. ?>
  13. </table>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01paty_styleループ2回の方がメンテナンスしやすいと思いますし、
┃┗A01-1matsu2009paty_style 様 解答ありがとございます。 なるほ
┗A02hayato0210試していないのであっているかわかりませんが 下記の
 ┗A02-1matsu2009hayato0210 様 お返事遅くなりました。 解答有難

回答一覧

並び替え:

A01 満足
answererpaty_style [2月8日 21:29]

ループ2回の方がメンテナンスしやすいと思いますし、条件分岐回数が減るのでスピードも速いですよ?


  1. $limit=3;
  2. for ($a = 0; $a <$limit; $a++){
  3.     echo "<tr><td>「NEW」等をつける</td></tr>
  4.     <tr><td>「短文」{$tanbun[$a]}</td></tr>";
  5. }
  6. for ($a = $limit; $a <10; $a++){
  7.     echo "<tr><td>「短文」{$tanbun[$a]}</td></tr>";
  8. }

この意見に回答する

ツリーへ TOPへ

A01-1
replyermatsu2009 [2月8日 22:10]

paty_style 様
解答ありがとございます。

なるほど!!
そういう記述にすれば if無しで書けますね!!
書き換えます!!
なかなかそういう発想が思いつきません。頭が固いのか、
経験なんでしょうかね...

現状でも動いていたのですが、質問してよかったです。
有難うございました。

この意見に回答する

ツリーへ TOPへ

A02 満足
answererhayato0210 [2月9日 07:07]

試していないのであっているかわかりませんが
下記のような書き方はどうでしょうか?

必ずecho "<tr><td>「短文」{$tanbun[$a]}</td></tr>"; 
が呼ばれるのでしたら下記の書き方もスマートかと思います。

  1. <table> 
  2. <?php 
  3. for ($a = 0$a <10$a++){
  4.   if ($a < 3){
  5.     echo "<tr><td>「NEW」等をつける</td></tr> ";
  6.   }else{ 
  7.     echo "<tr><td> </td></tr>";  
  8.   } 
  9.   echo "<tr><td>「短文」{$tanbun[$a]}</td></tr>"
  10. } 
  11. ?> 
  12. </table>

この意見に回答する

ツリーへ TOPへ

A02-1
replyermatsu2009 [2月11日 21:00]

hayato0210 様

お返事遅くなりました。
解答有難うございます。

この記述の仕方だと、echo部分の記述が少なくてすみますね!!
else で 空のテーブルを挿入するだけでいいから、テーブルの記述が1回ですみますね!!
後は空のテーブルの高さを小さくしてやれば「NEW」がついてないところも隙間が空かなくていいかもですね!!

勉強になりました!!
有難うございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)