Ôn tập: Sắp xếp bảng xếp hạng
Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 26 trên 68.
Thử thách
DễBạn sẽ nhận hai đầu vào: đầu tiên là một mảng kết hợp gồm tên người chơi và điểm số của họ ở định dạng JSON, thứ hai là thứ tự sắp xếp ("asc" hoặc "desc"). Hãy đọc cả hai đầu vào, chuyển chuỗi JSON thành mảng (array), sắp xếp bảng xếp hạng theo điểm số theo thứ tự đã chỉ định, rồi in tên và điểm số của từng người chơi trên một dòng riêng theo định dạng: Name: Score
Dùng asort() để sắp xếp theo thứ tự tăng dần và arsort() để sắp xếp theo thứ tự giảm dần, đồng thời giữ nguyên mối liên hệ giữa tên người chơi và điểm số.
Định dạng đầu vào:
- Dòng đầu tiên: đối tượng JSON có tên người chơi làm khóa và điểm số làm giá trị (ví dụ:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - Dòng thứ hai: thứ tự sắp xếp, có thể là
aschoặcdesc
Đầu ra mong đợi: Tên và điểm số của từng người chơi trên một dòng riêng theo định dạng Name: Score, được sắp xếp theo thứ tự đã chỉ định
Tự làm thử
<?php
// Đọc dữ liệu JSON đầu vào
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// Đọc thứ tự sắp xếp
$order = trim(fgets(STDIN));
// TODO: Viết code bên dưới để sắp xếp leaderboard theo thứ tự đã đọc
// In ra tên và điểm của từng người chơi
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>Tất cả bài học trong Logic và luồng chương trình
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online