我需要一个等级制度,这就是我所拥有的。
<?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问题是,当我有两个具有相同值的条目时,它跳过了下一个级别。我得到的结果显示,'10‘是排名2’的两倍。但后来它跳到了第四名。
我需要这样。
10 is ranking 2
11 is ranking 1
4 is ranking 3
2 is ranking 5
10 is ranking 2
3 is ranking 4请帮帮我。谢谢。
发布于 2017-01-19 12:27:10
是这样的。
因为您有多次10,所以rsort会多次映射它。
如果您想按自己的方式执行,则原始输入不能具有相同输入的多次倍。
使用独一无二,您可以解决这个问题,因此您将始终有一个独特的输入。
例如
$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>';
}发布于 2017-01-19 12:30:56
<?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>';
}
}
?>https://stackoverflow.com/questions/41741294
复制相似问题