여분필드 값을 비교해서 색상변경하려면 어떻게 하면 되는지요?

여분필드 5개에 값을 넣었는데

여기서 가장 높은 값이나 가장 값을 가진 셀의 색상을 바꾸어 주려합니다. (쉽게 볼 수 있도록)

wr_1, wr_2, wr_3, wr_4, wt_5

 

두개면 if문의 만들어서 색상지정해주면 될 것 같은데

여러개에서 비교하는 것은 어떻게 하면 되는지요?

 

감사합니다

|

답변 5개 / 댓글 4개

Copy
<?php
$wr_1 = 10;
$wr_2 = 20;
$wr_3 = 11;
$wr_4 = 2;
$wr_5 = 14;
$numbers = [$wr_1, $wr_2, $wr_3, $wr_4, $wr_5];
$max = array_search(max($numbers), $numbers);
foreach($numbers as $idx => $number) {
    $style = $idx === $max ? ' style="color: red;"' : '';
    echo '<span'.$style.'>'.$number.'</span><br>';
}

답변에 대한 댓글 1개

바쁘신데 너무 감사드립니다

Copy
$data1 = $view['wr_1'];
$data2 = $view['wr_2'];
$data3 = $view['wr_3'];
$data4 = $view['wr_4'];

$values = array($data1, $data2, $data3, $data4);
$maxValue = max($values);
$maxIndexes = array_keys($values, $maxValue);

echo "최댓값: " . $maxValue . ", 인덱스: " . implode(", ", $maxIndexes);

 

모두 배열에 넣은뒤 최댓값과 해당 값의 순서를 찾을수 있습니다.

for 로 돌릴때 해당 순서와 일치시 css 변경등의 조건문을 넣으시면되겠네요

다음과 같은 방법도 있으니 참고해 보세요

 

Copy
<table>
    <tr>
        <td id="cell1"><?php echo $write['wr_1']; ?></td>
        <td id="cell2"><?php echo $write['wr_2']; ?></td>
        <td id="cell3"><?php echo $write['wr_3']; ?></td>
        <td id="cell4"><?php echo $write['wr_4']; ?></td>
        <td id="cell5"><?php echo $write['wr_5']; ?></td>
    </tr>
</table>
 

<script>
    function highlightMaxMinCells() {
        const cells = document.querySelectorAll("td[id^='cell']");

        // 초기값 설정
        let maxVal = Number(cells[0].innerText);
        let minVal = Number(cells[0].innerText);
        let maxCell = cells[0];
        let minCell = cells[0];

        // 여분필드 값을 반복하면서 최대값과 최소값을 찾음
        for (let i = 1; i < cells.length; i++) {
            const cellValue = Number(cells[i].innerText);

            if (cellValue > maxVal) {
                maxVal = cellValue;
                maxCell = cells[i];
            }

            if (cellValue < minVal) {
                minVal = cellValue;
                minCell = cells[i];
            }
        }

        // 최대값과 최소값 셀에 색상 적용
        maxCell.style.backgroundColor = "green"; // 또는 다른 색상
        minCell.style.backgroundColor = "red";   // 또는 다른 색상
    }

    // 페이지 로드 시 실행
    window.onload = highlightMaxMinCells;
</script>

 

highlightMaxMinCells()는 테이블의 각 셀에서 여분필드 값을 읽어와 최대값과 최소값을 찾은다음 해당 값을 가진 셀에 색상을 표시 할 수 있을 것 같습니다

답변에 대한 댓글 1개

원하는 것을 전부 주셨네요 감사합니다. 알려주신데로 해보겠습니다

if($write['wr_1']==비교값 and $write['wr_2']==비교값)

이런식으로 처리하시되 and는 다 값이 같아야하고

or은 wr_1값도 있고 wr_2값도 존재하는 모두 실행되는 겁니다.

답변에 대한 댓글 1개

네 가르쳐 주셔서 감사합니다

답변에 대한 댓글 1개

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