html - php如何在二維數組中,再計算單列的最值。

來源:互聯網
上載者:User

在做一個統計網頁,現在遇到這樣一個問題。
如標題:怎麼在二維數組中,找到每個單列的最值。

,我需要找到需要的單列的最值,然後應用相應的樣式。

現在的顯示效果

需要實現的顯示效果

相應的顏色css類我已經寫好了,只需要引用就行了。
不用js代碼,也就是說直接在產生的時候直接判斷,再引用樣式。

部分代碼如下:

    $index=1;    while($row = mysql_fetch_array($result)){        echo '';        echo    ''.$index.'';        echo    ''.$row[user].'';        echo    ''.$row[speed].'';        echo    ''.$row[keystroke].'';        echo    ''.$row[length].'';        echo    ''.$row[backspace].'';        echo    ''.$row[wrong].'';        echo    ''.$row[ime].'';        echo    ''.$row[wordcount].'';        echo    ''.$row[timecost].'';        echo    ''.$row[qq].'';        echo    ''.date("H:i",strtotime($row[timestart])).'';        echo    ''.$row[repeat].'';        echo    ''.$row[score].'';        echo    ''.$row[scoresum].'';        echo '';        $index++;      /************************************************        其中的essential和center沒什麼其它作用,可以忽略。       ************************************************/    }

切成數組什麼的好說,我只是不知道存入數組後如何才能進行判斷。
求大神說的細點,小白在此謝過。

回複內容:

在做一個統計網頁,現在遇到這樣一個問題。
如標題:怎麼在二維數組中,找到每個單列的最值。

,我需要找到需要的單列的最值,然後應用相應的樣式。

現在的顯示效果

需要實現的顯示效果

相應的顏色css類我已經寫好了,只需要引用就行了。
不用js代碼,也就是說直接在產生的時候直接判斷,再引用樣式。

部分代碼如下:

    $index=1;    while($row = mysql_fetch_array($result)){        echo '';        echo    ''.$index.'';        echo    ''.$row[user].'';        echo    ''.$row[speed].'';        echo    ''.$row[keystroke].'';        echo    ''.$row[length].'';        echo    ''.$row[backspace].'';        echo    ''.$row[wrong].'';        echo    ''.$row[ime].'';        echo    ''.$row[wordcount].'';        echo    ''.$row[timecost].'';        echo    ''.$row[qq].'';        echo    ''.date("H:i",strtotime($row[timestart])).'';        echo    ''.$row[repeat].'';        echo    ''.$row[score].'';        echo    ''.$row[scoresum].'';        echo '';        $index++;      /************************************************        其中的essential和center沒什麼其它作用,可以忽略。       ************************************************/    }

切成數組什麼的好說,我只是不知道存入數組後如何才能進行判斷。
求大神說的細點,小白在此謝過。

知道怎麼弄了, 先從資料庫把每列的資料先讀取出來,然後用max(),min()計算每列的最值
然後,在輸出的時候,當前列的資料是否等於這一列的最值,等於的話就給予特殊樣式。
其中需要注意的一項是:mysql_fetch_array只能取一次資料,取完一次之后里面就沒有資料了。所以先把查詢到的資料轉存。

部分代碼如下:

    //轉存查詢的結果    $temp_result = array();    while($row=mysql_fetch_array($result)){        array_push($temp_result, $row);    }    //擷取每個列的所有資料,算出最值;    $speed = array();    $keystroke = array();    $length = array();    $backspace = array(); $repeat = array();    foreach ($temp_result as $row ) {        array_push($speed, $row[speed]);        array_push($keystroke, $row[keystroke]);        array_push($length, $row[length]);        array_push($backspace, $row[backspace]);        array_push($repeat, $row[repeat]);    }    $max_speed=max($speed);    $max_keystroke=max($keystroke);    $min_length = min($length);    $min_backspace = min($backspace);    $max_repeat = max($repeat);    // 輸出資料行表    $index=1;    foreach ($temp_result as $row ) {        echo '';        echo    ''.$index.'';        echo    ''.$row[user].'';        if($row[speed]==$max_speed){            echo    ''.$row[speed].'';        }else{            echo    ''.$row[speed].'';        }        if($row[keystroke]==$max_keystroke){            echo    ''.$row[keystroke].'';        }else{            echo    ''.$row[keystroke].'';        }        if($row[length]==$min_length){            echo    ''.$row[length].'';        }else{            echo    ''.$row[length].'';        }        if($row[backspace]==$min_backspace){            echo    ''.$row[backspace].'';        }else{            echo    ''.$row[backspace].'';        }        echo    ''.$row[wrong].'';        echo    ''.$row[wordcount].'';        echo    ''.$row[timecost].'';        echo    ''.date("m-d H:i",strtotime($row[timestart])).'';        if($row[repeat]==$max_repeat){            echo    ''.$row[repeat].'';        }else{            echo    ''.$row[repeat].'';        }        echo    ''.$row[score].'';        echo    ''.$row[scoresum].'';        echo '';        $index++;    }

最終的顯示效果

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.