学生的成绩与他们在课堂上的位置

时间:2014-12-01 14:42:52

标签: php

我需要这个剧本的帮助,我打印出学生的成绩,并试着在课堂上找到自己的位置。

<html>
<body>
<table border="0" cellspacing="1" cellpadding="0">
<tr>
<td><p align="center"><strong>Student     Name</strong></p></td>
<td><p align="center"><strong>Computer</strong></p></td>
<td><p align="center"><strong>Position</strong></p></td>
</tr>
<tr>
<td><p>Agbo Cynthia </p></td>
<td><p>21.0</p></td>
<td><p> </p></td>
</tr>
<tr>
<td><p>Nwoye Ugochukwu </p></td>
<td><p>76.0</p></td>
<td><p></p></td>
</tr>
<tr>
<td><p>Ogburie Kosisochukwu </p></td>
<td><p>28.0</p></td>
<td><p> </p></td>
</tr>
<tr>
<td><p>Okechukwu Onyeka </p></td>
<td><p>38.0</p></td>
<td><p> </p></td>
</tr>
</table>
</body>
</html>

尝试使用脚本来确定学生在db中得分的位置时,我最终无法获得正确的脚本。 我在下面使用这个脚本,但它重复得分值。

$ row ['comp']是来自db

的每个学生的分数
<?php
$grades = array(''.$row['comp'].'');
$occurrences = array_count_values($grades);
$grades = array_unique($grades);
foreach($grades as $grade) 
   {
echo str_repeat($grade .' - '.($i+1).'<br>',$occurrences[$grade]);
$i += $occurrences[$grade];
   }
?>

我想要的是一个脚本,它会根据db中的计算机分数为课堂上的学生提供他们的位置

2 个答案:

答案 0 :(得分:1)

使用OR(||)时,不仅可以检查第二个值,还需要重新检查每个元素。 (实施例)

if($a == $b || $a == $c)

你能这样强迫吗?

if (substr($pross['posi'], -1) == 1 && $pross['posi'] != 11){
     echo $pross['posi'].'st';
} elseif(substr($pross['posi'], -1) == 2 && $pross['posi'] != 12){
     echo $pross['posi'].'nd';
} else {
     echo $pross['posi'].'th';
}

我将值强制为字符串,然后检查每个字符串的最后一个值。

答案 1 :(得分:0)

  1. if($pross['posi'] % 10 === 1)更具可读性;

  2. 评估的代码实际上是:

    if(($ pross ['posi'] == 1)||(21))...

  3. 显然21评估为true。要实现你想要的,你应该重复

    $var === 1 || $var === 11 || ...
    

    或使用我上面介绍的模数计算。