我有一些代码,我们将变量从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;
}
}
?>
我怎样才能找到第二和第三高分?
任何帮助都将是巨大的!谢谢!
答案 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>';
}