PHP如何实现带勋章与序数后缀的竞赛用户排名列表
实现竞赛用户列表的样式优化
以下是修改后的PHP代码,可直接实现你期望的输出样式:
<?php $users = ["129292199", "616161616", "272727272", "555554433", "666665886"]; // 定义各排名对应的表情符号 $rankEmojis = [ 1 => "👑", 2 => "🥈", 3 => "🥉", 4 => "4️⃣", 5 => "5️⃣" ]; foreach ($users as $index => $name) { $rank = $index + 1; // 生成对应序数词 switch ($rank) { case 1: $ordinal = "1st"; break; case 2: $ordinal = "2nd"; break; case 3: $ordinal = "3rd"; break; default: $ordinal = $rank . "th"; break; } // 获取对应表情,超出预设排名时默认使用数字表情 $emoji = $rankEmojis[$rank] ?? $rank . "️⃣"; // 格式化输出内容 echo "{$emoji} {$ordinal} : {$name}\n"; } ?>
关键逻辑说明:
- 用
$rankEmojis数组统一管理排名表情,后续扩展更多排名时只需补充数组即可 - 通过数组索引+1得到用户实际排名,解决数组索引从0开始的问题
- 针对1st、2nd、3rd的特殊序数词做单独处理,其余排名统一使用「数字+th」格式
- 输出严格按照「表情 序数词 : 用户ID」的结构拼接内容
运行代码后的输出结果:
👑 1st : 129292199 🥈 2nd : 616161616 🥉 3rd : 272727272 4️⃣ 4th : 555554433 5️⃣ 5th : 666665886
内容的提问来源于stack exchange,提问作者Meta Airdroper
相关产品推荐
相关产品推荐

