在做一個統計網頁,現在遇到這樣一個問題。
如標題:怎麼在二維數組中,找到每個單列的最值。
,我需要找到需要的單列的最值,然後應用相應的樣式。
現在的顯示效果
需要實現的顯示效果
相應的顏色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++; }
最終的顯示效果