计算第二和第三高分

时间:2015-11-05 23:55:50

标签: php wordpress gravity-forms-plugin

我有一些代码,我们将变量从WP中的Gravity Forms测验传递到结果表,并且可视地将高分与其他答案区别对待。

我在尝试计算第二和第三高分时遇到了麻烦,并且还将这些变量传递到表中,以便与剩余答案的显示方式不同。

以下是高分代码:

function getType(data) {
  return Object.prototype.toString.call(data).slice(8, -1);
}

以下是显示答案的代码:

<?php

        $results = $_REQUEST['results'];

        $high_score = 0;

        // Find the highest score
        foreach ( $results as $result ) {
          if ( $result >= $high_score ) {
            $high_score = $result;
          }
         }
    ?>

我怎样才能找到第二和第三高分?

任何帮助都将是巨大的!谢谢!

1 个答案:

答案 0 :(得分:0)

这对你有用吗?将结果数组从最高到最低排序如下:

$results = $_REQUEST['results'];
rsort($results);
$results[0]; // Highest score
$results[1]; // Second highest score
$results[2]; // Third highest score

显示结果(如果您只想要9):

for ( $i = 0; $i < 9; $i++ ) {
    if($i < count($results)){
        $type = $i + 1;
        if ( $i == 0 ) {
            echo '<td data-th="Type' . $type . '" style="text-align: center; color: #42459c;"><strong>' . $results[$i] . '</strong></td>';
        } else {
            echo '<td data-th="Type' . $type . '" style="text-align: center; color: #3F4346;">' . $results[$i] . '</td>';
        }
    }
}

如果你想明确说第一个地方是一种颜色,第二个地方是另一种颜色,那么这可能有效:

foreach($results as $i => $result) {
    $type = $i+1;
    if($i == 0) // First
        echo '<td data-th="Type' . $type . '" style="text-align: center; color: red;"><strong>' . $result . '</strong></td>';
    else if($i == 1) // Second
        echo '<td data-th="Type' . $type . '" style="text-align: center; color: blue;"><strong>' . $result . '</strong></td>';
    else if($i == 2) // Third
        echo '<td data-th="Type' . $type . '" style="text-align: center; color: green;"><strong>' . $result . '</strong></td>';

    // All other results
    else
        echo '<td data-th="Type' . $type . '" style="text-align: center; color: gray;">' . $result . '</td>';
}