for文でif  nullを使えばよいのでしょうか? - PHPプロ!Q&A掲示板

4908

  • 0P

for文でif  nullを使えばよいのでしょうか?

質問日時 / 2017年12月18日 16:07    回答数 / 1件

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

キーワード / for    if    null?   


0から始まり100まで、100を超えるとまた0から始まる設定の枠に、$N1から$N2の範囲で色を付けたいのですが、範囲が100を超えた場合($N1=90~$N2=10など)どのような式をたてればよいのでしょうか?。
以下の式をたてましたがうまくいきません。
教えてください。お願いします。

<?php
    for($i=0; $i<=100; $i++){
     if($N1 <= $i && $i <= $N2){
   echo('<tr style = "background-color:#000000">');
}elseif(is_null($N1 <= $i && $i <= $N2)){
     if($N1 <= $i && $i <= 100 || 0 <= $i && $i <= $N2){
   echo('<tr style = "background-color:#000000">');
}else{
   echo('<tr>');
}
   echo('<td>'." ".'</td>');
   echo('</tr>');
}
}
?>

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



ツリー一覧

┗A01shimix一般的には「$N1 < $N2 となっている」前提で記述しま

回答一覧

並び替え:

A01 満足
answerershimix [12月19日 12:32]

一般的には「$N1 < $N2 となっている」前提で記述します。たとえば

$N1 = 90;
$N2 = 10;

として渡されたら($N1 > $N2 だったら)$N1 と $N2 を入れ替えて処理するのが普通です。関数にするようなケースだと引数をチェックして実際に利用する変数に渡すときにやってしまいます。

  1. <?php
  2. function setTR($arg1$arg2$arg3) {
  3.     if ($arg2 <= $arg3) {
  4.         $W1 = $arg2;
  5.         $W2 = $arg3;
  6.     } else {
  7.         $W1 = $arg3;
  8.         $W2 = $arg2;
  9.     }
  10.     return ($arg1 >= $W1 && $arg1 <= $W2) ? '<tr style="background-color:00ff00">' : '<tr>';
  11. }
  12. ?>
  13. <table>
  14. <?php
  15. $N1 = 10;
  16. $N2 = 30;
  17.  
  18. for($i = 0$i <= 100$i++) {
  19.   printf('%s<td>%d</td></tr>' . PHP_EOLsetTR($i$N1$N2)$i);
  20. }
  21. $N1 = 30;
  22. $N2 = 10;
  23.  
  24. for($i = 0$i <= 100$i++) {
  25.   printf('%s<td>%d</td></tr>' . PHP_EOLsetTR($i$N1$N2)$i);
  26. }
  27. ?>
  28. </table>

もちろん関数にせずにそのまま書いてもいいです(汗

  1. <table>
  2. <?php
  3. $N1 = 10;
  4. $N2 = 30;
  5.  
  6. for($i = 0$i <= 100$i++) {
  7.     $style = 'style="background-color:#ffffff"';
  8.     if ($N1 < $N2) {
  9.         if ($i >= $N1 && $i <= $N2) {
  10.             $style = 'style="background-color:#ff0000"';
  11.          }
  12.      } else {
  13.         if ($i >= $N2 && $i <= $N1) {
  14.             $style = 'style="background-color:#ff0000"';
  15.          }
  16.      }
  17.   printf('<tr %s><td>%d</td></tr>' . PHP_EOL$style$i);
  18. }
  19.  
  20. $N1 = 30;
  21. $N2 = 10;
  22.  
  23. for($i = 0$i <= 100$i++) {
  24.     $style = 'style="background-color:#ffffff"';
  25.     if ($N1 < $N2) {
  26.         if ($i >= $N1 && $i <= $N2) {
  27.             $style = 'style="background-color:#ff0000"';
  28.          }
  29.      } else {
  30.         if ($i >= $N2 && $i <= $N1) {
  31.             $style = 'style="background-color:#ff0000"';
  32.          }
  33.      }
  34.   printf('<tr %s><td>%d</td></tr>' . PHP_EOL$style$i);
  35. }
  36. ?>
  37. </table>

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

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