我需要这个剧本的帮助,我打印出学生的成绩,并试着在课堂上找到自己的位置。
<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中的计算机分数为课堂上的学生提供他们的位置
答案 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)
if($pross['posi'] % 10 === 1)
更具可读性;
评估的代码实际上是:
if(($ pross ['posi'] == 1)||(21))...
显然21
评估为true
。要实现你想要的,你应该重复
$var === 1 || $var === 11 || ...
或使用我上面介绍的模数计算。