채택완료

코드를 줄이고 싶습니다

2017-10-13 (금) 16:35:31 1,897

wr_11부터 7간격으로 즉 wr_11, wr_18,~~~ 이런식으로 이걸 쓰고 있는데요..

한 20개 되다보니 

이걸 20번 반복하고 있습니다.

좋은 방법이 없을까요?

<? if($list[$i][wr_11] == 0){  

echo ""; 

}else{ 

echo "<span style='color:red'>{$list[$i][wr_11]}</span>"; 

} 

?>

|

답변 4개 / 댓글 5개

채택된 답변
+20 포인트

$total = 20;

for ($j=11; $total>0; $j+=7, $total--) {

    if (isset($list[$i]['wr_'.$j])) {

        echo ($list[$i]['wr_'.$j] === 0) ? "" : "<span style='color:red'>{$list[$i]['wr_'.$j]}</span>";

    }

}

답변에 대한 댓글 2개

소중한 시간 내주셔서 감사합니다~ 잘되네요..
스팬 스타일 칼라가 안먹히는데 왜 그럴까요?
<span style='color:red !important;'>
span style 이 적용안되는건 아마도
다른 class정의된 내용과 충돌일 확율이 높습니다

웹브라우저 개발자 도구를 열어서 해당 페이지를 로딩해보세요
스타일에 취소선이 그어져 있을수 있습니다

코드줄리는건 다양한 방법들이 있긴합니다

for ($ii=11,$j=0; $j < 20;$j++,$ii+=7){
    if ( $list [$i]['wr_'. $ii])
        echo "{$list[$i]['wr_'. $ii]}"; 
}
2017-10-13 (금) 16:59:27

예제입니다. (실제 테스트, 오류 테스트는 해보지 못했습니다.)

Copy
foreach($list[$i] as $col => $val) { // $list[$i] 의 칼럼들 순회	if (is_numeric($col)) {	// 칼럼명에 숫자가 포함되어 있다면 wr_1, wr_2, ... 		$num = (int) ($col); // 칼럼명의 숫자부분만 추출		if ($num >= 11 && $num % 7 == 4) { // 7로 나눈 나머지가 4이면			if ($val === 0)				echo "";			else				echo "<span style='color:red'>{$list[$i][$col]}</span>"; 			} 				}	}

답변에 대한 댓글 2개

소중한 시간내주셔서 감사합니다. 잘됩니다.
그런데 스팬스타일 칼라가 안먹혀서 왜 그런지 모르겠습니다.
2017-10-13 (금) 18:20:02
크롬 브라우저로 해당 부분에서 마우스 우클릭 > 검사를 하면, http://kyunni22.tistory.com/7

어떤 스타일이 적용되고 있는지, 어떤 문제가 있는 것인지 등을

확인하여 수정하시면 됩니다.
Copy
<?php$wr_1  =  100;$wr_2  =  2;$wr_3  =  3;$wr_4  =  4;$wr_5  =  5;$wr_6  =  6;$wr_7  =  7;$wr_8  =  8;$wr_9  =  9;$wr_10 = 1000;$wr_11 = 11;$wr_12 = 12;$wr_13 = 13;$wr_14 = 14;$wr_15 = 15;$wr_16 = 16;$wr_17 = 17;$wr_18 = 18;$wr_19 = 19;$wr_20 = 2000;for ($i = 1; $i <= 20; $i++) {    echo ${'wr_' . $i} . '<br />';}?>
Copy
<?php$list = [    [        'wr_1' => 1,        'wr_2' => 0,        'wr_3' => 3    ],    [        'wr_1' => 3,        'wr_2' => 2,        'wr_3' => 0    ]];foreach ($list as $arr) {    $arr = array_filter($arr);    foreach ($arr as $v) {        echo '<span style="color: red;">' . $v . '</span><br />';    }}?>

답변에 대한 댓글 1개

소중한 시간 내주셔서 감사합니다~

답변을 작성하려면 로그인이 필요합니다.