php 中排名数组中的错误
Bugs in ranking array in php
我需要一个排名系统,我有这个。
<?php
$arr=array(10,11,4,2,10,3);
$rank = $arr;
rsort($rank);
foreach($arr as $sort) {
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
?>
我得到的结果是
10 is ranking 2
11 is ranking 1
4 is ranking 4
2 is ranking 6
10 is ranking 2
3 is ranking 5
问题是,当我有 2 个具有相同值的条目时,它跳过了下一个排名。我上面得到的结果两次显示“10 排名 2”。但随后它跳到了第 4 位。
我需要它是这样的。
10 is ranking 2
11 is ranking 1
4 is ranking 3
2 is ranking 5
10 is ranking 2
3 is ranking 4
请帮帮我。谢谢。
没错。
因为你10
多次,rsort
会映射多次。
如果你想按自己的方式做,原始输入不能有多次相同的输入。
使用array_unique你可以解决这个问题,所以你总是有一个独特的输入。
例如
$arr=array(10,11,4,2,10,3);
$rank = array_unique($arr); //This line have I changed
rsort($rank);
foreach($arr as $sort) {
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
<?php
$arr=array(10,11,4,2,10,3);
$rank = $arr;
rsort($rank);
foreach($arr as $sort) {
if($sort <= 4){
echo $sort.' is ranking '.(array_search($sort, $rank)).'<br>';
}else{
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
}
?>
我需要一个排名系统,我有这个。
<?php
$arr=array(10,11,4,2,10,3);
$rank = $arr;
rsort($rank);
foreach($arr as $sort) {
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
?>
我得到的结果是
10 is ranking 2
11 is ranking 1
4 is ranking 4
2 is ranking 6
10 is ranking 2
3 is ranking 5
问题是,当我有 2 个具有相同值的条目时,它跳过了下一个排名。我上面得到的结果两次显示“10 排名 2”。但随后它跳到了第 4 位。
我需要它是这样的。
10 is ranking 2
11 is ranking 1
4 is ranking 3
2 is ranking 5
10 is ranking 2
3 is ranking 4
请帮帮我。谢谢。
没错。
因为你10
多次,rsort
会映射多次。
如果你想按自己的方式做,原始输入不能有多次相同的输入。
使用array_unique你可以解决这个问题,所以你总是有一个独特的输入。
例如
$arr=array(10,11,4,2,10,3);
$rank = array_unique($arr); //This line have I changed
rsort($rank);
foreach($arr as $sort) {
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
<?php
$arr=array(10,11,4,2,10,3);
$rank = $arr;
rsort($rank);
foreach($arr as $sort) {
if($sort <= 4){
echo $sort.' is ranking '.(array_search($sort, $rank)).'<br>';
}else{
echo $sort.' is ranking '.(array_search($sort, $rank) + 1).'<br>';
}
}
?>