Menu
CoddyTech

回顾:排行榜排序

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 26 课,共 68 课。

challenge icon

挑战

简单

你会收到两个输入:第一个是 JSON 格式的玩家姓名和分数关联数组,第二个是排序顺序("asc" 或 "desc")。读取这两个输入,将 JSON 字符串转换为数组,根据指定顺序按分数对排行榜排序,然后将每位玩家的姓名和分数分别打印在单独一行,格式为:Name: Score

升序时使用 asort(),降序时使用 arsort(),以保留玩家姓名与分数之间的对应关系。

输入格式:

  • 第一行:以玩家姓名为键、分数为值的 JSON 对象(示例:{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100})
  • 第二行:排序顺序,可以是 asc 或 desc

预期输出:按照指定顺序排序后,将每位玩家的姓名和分数分别打印在单独一行,格式为 Name: Score

亲手试试

<?php
// 读取 JSON 输入
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);

// 读取排序顺序
$order = trim(fgets(STDIN));

// TODO: 在下方编写代码,根据排序顺序对 leaderboard 排序


// 输出每位玩家的姓名和分数
foreach ($leaderboard as $name => $score) {
    echo "$name: $score\n";
}
?>

逻辑与流程中的所有课

自己练习: PHP 在线编译器