0

次の if's by for loop .. ?? を回避するにはどうすればよいですか? また、実行時にcssを生成するにはどうすればよいですか.. ??

if ($string == 12 && $string1==23) $style="r16"; 
if ($string == 34 && $string1==45) $style="r17"; 
if ($string == 45  && $string1== 56 ) $style="r18"; 
if ($string == 56 && $string1== 67) $style="r19"; 
if ($string == 67 && $string1== 78 ) $style="r20"; 
if ($string == 78 && $string1== 89 ) $style="r21"; 
if ($string == 89 && $string1== 910) $style="r22"; 
if ($string == 910 && $string1== 1011) $style="r23"; 
if ($string == 1011 && $string1== 1112) $style="r24"; 
if ($string ==  1112 && $string1== 1213) $style="r25"; 
if ($string == 1213 && $string1==1314 ) $style="r26"; 
if ($string == 1314 && $string1==1415 ) $style="r27"; 
if ($string == 1415 && $string1==1516 ) $style="r28"; 
if ($string == 1516 && $string1==1617 ) $style="r29"; 

CSSが必要です..次のように

.r16{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r17{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r18{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r19{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r20{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r21{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r22{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r23{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r24{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r25{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r26{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r27{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r28{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
.r29{ text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px; }
4

3 に答える 3

2

if配列を使用して s を取り除くことができます。

$styles = array('12,23' => 'r16',
                '34,45' => 'r17',
                ...
                '1516,1617' => 'r29'
               );
if (isset($styles["$string,$string1"])) {
    $style = $styles["$string,$string1"];
}

この配列を使用して CSS を生成することもできます。クラス名と CSS を含む値を連想配列にします。

$styles = array('12,23' => array('class' => 'r16',
                                 'css' => 'text-align: left;padding-left: 100px; border: solid 1px #CCCCCC;  margin: 10px 490px 0px 285px;'),
    ...
于 2013-09-03T00:09:23.150 に答える
1

これを試すことができます:

$range_start_arr = array(12, 34, 45, 56, 67, 78, 89, 910, 1011, 1112, 1213, 1314, 1415, 1516);
$range_end_arr = array(23, 45, 56, 67, 78, 89, 910, 1011, 1112, 1213, 1314, 1415, 1516, 1617);
for (i = 16; $i <= 29; $i++)
{
    $k = $i - 16;
    if($string == $range_start_arr[$k] && $string1 == $range_end_arr[$k]) $style = 'r'.$i;
}

とは定数で$stringあり$string1、コードを短縮しようとしているだけだと思います。

于 2013-09-03T00:09:47.207 に答える
0

次の if's by for ループを回避するにはどうすればよいですか?

できません!$string と $string1 はどこから来たのですか? また、CSS クラスは $string(1) から計算されない場合があります。これは、「間隔」が同じサイズでも線形でもないためです。

実行時にcssを生成するにはどうすればよいですか?

.css ファイルを呼び出す代わりに、計算されたスタイルをエコーする .php ファイルをそこに置くだけです。

于 2013-09-03T00:11:13.910 に答える