Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中排序数组中的错误_Php_Arrays_Rank - Fatal编程技术网

php中排序数组中的错误

php中排序数组中的错误,php,arrays,rank,Php,Arrays,Rank,我需要一个排名系统,这就是我所拥有的 <?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>'; } ?> 问题是,当我有两个具有相同值的条目时,它跳过了下一个

我需要一个排名系统,这就是我所拥有的

<?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”排名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
请帮帮我。谢谢。

没错

因为您多次使用
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>';
}
$arr=数组(10,11,4,2,10,3);
$rank=数组\唯一($arr)//这条线我换了吗
rsort(等级);
foreach($arr作为$sort){
echo$sort.“正在排名”。(数组搜索($sort$rank)+1)。”
; }


你救了我。。我真的需要更多地了解数组。非常感谢您,或者如果您想包括重复的号码,您可以这样做
@iwaduarte,我明白了。非常感谢。
$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>';
   }
}
?>