まとめ:リーダーボードのソート
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 26/68。
チャレンジ
簡単2つの入力を受け取ります。1つ目はJSON形式のプレイヤー名とスコアの連想配列、2つ目はソート順("asc" または "desc")です。両方の入力を読み込み、JSON文字列を配列に変換し、指定された順序に従ってスコアでリーダーボードをソートし、各プレイヤーの名前とスコアを Name: Score の形式で個別の行に出力してください。
プレイヤー名とスコアの関連付けを維持するために、昇順には asort() を、降順には arsort() を使用してください。
入力形式:
- 1行目:プレイヤー名をキー、スコアを値とするJSONオブジェクト(例:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - 2行目:ソート順 -
ascまたはdesc
期待される出力: 指定された順序に従ってソートされた、各プレイヤーの名前とスコアを Name: Score の形式で個別の行に出力
自分で試してみよう
<?php
// JSON入力を読み込む
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// ソート順を読み込む
$order = trim(fgets(STDIN));
// TODO: 指定された順序に基づいてリーダーボードをソートするコードを以下に記述してください
// 各プレイヤーの名前とスコアを出力する
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>