按值对关联数组进行排序,得到十个最大的键


sort associative array by value and get ten greatest keys

我有一个来自循环的关联数组,在其中我存储一个user_id(密钥)和一个score(值)

$scores[$user_id] = $score;

我想知道,在这个循环结束后,我如何对值进行排序(获得十个最高分数)并获得它们的密钥。

asort($scores);
$tenHighest = array_slice($scores, -10, null, true);
$tenHighestKeys = array_keys($tenHighest);

使用asort()(保留密钥)和array_slice()获得前10名。

asort($scores, SORT_NUMERIC);
$top10 = array_slice($sort, -10);

使用array_keys()获取密钥,就像Deceze所做的那样。

asort($scores);

http://php.net/manual/en/function.asort.php