当前位置:Gxlcms > PHP教程 > html-php如何在二维数组中,再计算单列的最值。

html-php如何在二维数组中,再计算单列的最值。

时间:2021-07-01 10:21:17 帮助过:5人阅读

在做一个统计网页,现在遇到这样一个问题。
如标题:怎么在二维数组中,找到每个单列的最值。

如图,我需要找到需要的单列的最值,然后应用相应的样式。

现在的显示效果

需要实现的显示效果

相应的颜色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++; }

最终的显示效果

人气教程排行