【发布时间】:2016-03-29 14:18:26
【问题描述】:
我正在尝试创建一个这样的自定义评分系统:
AAA - Highest rating
AA
A
BBB
BB
B
CCC
CC
C - Lowest rating
其中AAA最高,C最低。为此,我需要 PHP 知道哪个评级是最高的、最低的以及介于两者之间的所有内容,并据此评估一系列评级。我已经想出了如何使用usort() 创建排序,如下所示:
$ratings = array("a" => "AAA", "b" => "AA", "c" => "A", "d" => "BBB", "e" => "BB", "f" => "B", "g" => "CCC", "h" => "CC", "i" => "C");
$sortedRatings = usort($ratings, "cmp_function");
这将返回一个从最高优先级到最低优先级整齐排序的数组。现在我需要继续使用这种排序来从这样的数组中获得最高和最低评分:
$ratingHistory = array("BB", "B", "CCC", "C", "BB");
那么我该如何根据$sortedRatings 中的排序从$ratingHistory 中获取最高和最低值?我希望有人可以帮助我解决这个问题。如果您不完全清楚我的问题,请发表评论,以便我尝试进一步解释。
编辑:
只是为了清楚。预期结果是:
Highest: BB
Lowest: C
【问题讨论】:
-
如果可以对数组进行排序,则最高值是第一个键,最低值是最后一个键。
-
如何排序和选择数组的第一个和最后一个元素?那将是有效和简单的,但不是很有效。