如何在PHP中获得关联数组中的前n个键?

时间:2016-03-16 22:19:07

标签: php arrays sorting associative-array

我有一个数组可以存储几个不同科目的人员分数,例如:

$scores = array(
    'reading' => 80,
    'math' => 85, 
    'science' => 75, 
    'social studies'=> 90, 
    'music' => 95);

我需要将前三个主题(键)列表作为字符串:

$topScores = "Music, Social Studies, Math";

这是一种干净有效的方法吗?

3 个答案:

答案 0 :(得分:2)

以相反的顺序对数组进行排序,保持与arsort()的关联。然后取一个数组(前三个元素)。

input.value =  ''

然后,您可以使用implode从切片数组中生成一个字符串。

Rizier123指出你想要字符串中的键,所以你需要内爆键。像

这样的东西
class MyClass<T> {

}

class MySubclass1: MyClass<String> {

}

class MySubclass2: MyClass<Int> {

}

答案 1 :(得分:0)

这是我带来的东西:

arsort($scores);
$scores = array_slice($scores,0,3);
$finalString = null;
foreach($scores as $key => $value){
    $finalString .= ucfirst($key).', ';
}
echo $finalString;

答案 2 :(得分:0)

以下是我提出的解决方案:

$sorted = $scores;
arsort($sorted);
$top_three = array_slice(array_keys($sorted), 0, 3);
$skills = implode(', ',$top_three);
$this->top_skills = ucwords($skills);