本文介绍了如何在 PHP 中对数组的索引进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在我的系统中排名.我有一个数组 $arr = array(120,26,38,96,22);.我需要在不改变它们的位置的情况下对索引进行排名.
I need rank in my system. I have an array $arr = array(120,26,38,96,22);. I need to rank the index inside without changing their position.
我需要的输出类似于:
120 是 1 级,26 是 4 级,38 是 3 级,96 是 2 级,22 是 5 级
120 is rank 1, 26 is rank 4, 38 is rank 3, 96 is rank 2, 22 is rank 5
我试过了,但都排在第 1 位:
I've tried this, but all ranked as rank 1:
<?php $arr = array(120,26,38,96,22); $rank = 0; $score=false; $rows = 0; foreach($arr as $sort){ $rows++; if($score != $arr){ $score = $arr; $rank = $rows; }echo $sort.' is rank '.$rank.'</br>'; } ?>而且我还需要数组长度是动态的.
And also I need the array length to be dynamic.
推荐答案这是一种方法:
$arr = array(120,26,38,96,22); $rank = $arr; rsort($rank); foreach($arr as $sort) { echo $sort. ' is rank ' . (array_search($sort, $rank) + 1) . '</br>'; }- 将原始数组复制为 $rank 并反向排序,使键为 rank -1
- 循环原始数组并在 $rank 中搜索该值,返回键(等级)
- 加 1,因为键从 0 开始
- Copy the original array as $rank and sort in reverse so the keys will be the rank -1
- Loop the original array and search for that value in $rank returning the key (rank)
- Add 1 since keys start at 0
- 将原始数组复制为 $rank 并反向排序,使键为 rank -1
- 翻转 $rank 数组以获取值作为键并将排名作为值
- 循环原始数组并使用该值作为$rank键获得排名
- 加 1,因为键从 0 开始
- Copy the original array as $rank and sort in reverse so the keys will be the rank -1
- Flip the $rank array to get values as keys and rank as values
- Loop the original array and use the value as the $rank key to get the rank
- Add 1 since keys start at 0
或者其他可能:
$arr = array(120,26,38,96,22); $rank = $arr; rsort($rank); $rank = array_flip($rank); foreach($arr as $sort) { echo $sort . ' is rank '. ($rank[$sort] + 1) . '</br>'; }
更多推荐
如何在 PHP 中对数组的索引进行排序
发布评论