Php 如何获得排名并列的分数?
各位。我是新来的,也是一个新的PHP程序员。我正在建立一个排名,希望你们能帮助我建立排名关系,因为在我试图找到完美的排名解决方案时,我一直坚持给出正确的排名。代码将解释我正在努力实现的目标:Php 如何获得排名并列的分数?,php,Php,各位。我是新来的,也是一个新的PHP程序员。我正在建立一个排名,希望你们能帮助我建立排名关系,因为在我试图找到完美的排名解决方案时,我一直坚持给出正确的排名。代码将解释我正在努力实现的目标: <?php if ($dados == "") { $totalWebservice1 = 0; $position = 1; $mat = ''; $id = ''; foreach ($resultAll as $dado) { $group
<?php
if ($dados == "") {
$totalWebservice1 = 0;
$position = 1;
$mat = '';
$id = '';
foreach ($resultAll as $dado) {
$group = $insert->selectGrupo($dado['codClient']);
if ($dado['codClient'] == $group['id_sponte'] && $group['group'] == 'yellow' && $topOne['codClient'] != $dado['codClient']) {
$totalWebservice1 = $totalWebservice1 + $dado['registration'];
?>
<tr>
<td><?php echo $position?>º</td>
<td><?php echo $dado['name'] ?></td>
<td><?php echo $dado['registration'] ?></td>
<?php
if ($dado['registration'] != $mat || $dado['name'] != $id) { // if not the same id.
$position++;
}
?>
</tr>
<?php
$mat = $dado['registration'];
$id = $dado['name'];
}
}
} else {
$totalMatriculas1 = 0;
?>
预期产出:
Position Name Registration
1° teste 4
2° teste 2
2° teste 2
2° teste 2
2° teste 2
3° teste 1
问题是它将排名打印为
1,2,3,3,3,3
,而根据我的假设,它应该打印1,2,2,2,3
。那么它如何打印1,2,2,3
?哪里会出问题 if语句位于echo之后,因此您正在为下一次迭代做准备,这就是为什么计数是一次性的
除此之外,这种逻辑也有点古怪。尽量避免“无所事事”的情况
if ($dado['registration'] != $mat || $dado['name'] != $id) { // if not the same id.
$position++;
}
请发布所有相关代码(包括循环)。这里有一些变量,我们不知道它们是如何或在哪里填充的。对不起,伙计,所以我又添加了整个代码。Daan,非常感谢你,你知道了。
if ($dado['registration'] != $mat || $dado['name'] != $id) { // if not the same id.
$position++;
}