Sắp xếp mảng có chỉ số giảm dần
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 21 trên 68.
Khi cần sắp xếp dữ liệu theo thứ tự ngược, từ cao nhất đến thấp nhất hoặc từ Z đến A, hàm rsort() của PHP là giải pháp phù hợp. Hàm này hoạt động giống hệt sort(), nhưng sắp xếp các phần tử theo thứ tự giảm dần thay vì tăng dần.
Sau đây là cách rsort() hoạt động với một mảng điểm:
<?php
$scores = [78, 95, 82, 91, 87];
rsort($scores);
print_r($scores);
// Đầu ra: Array ( [0] => 95 [1] => 91 [2] => 87 [3] => 82 [4] => 78 )
?>Giống như sort(), hàm rsort() sửa đổi trực tiếp mảng ban đầu thay vì tạo một bản sao mới đã sắp xếp. Sau khi gọi rsort(), mảng của bạn sẽ được sắp xếp lại vĩnh viễn theo thứ tự giảm dần.
Hàm này đặc biệt hữu ích khi bạn muốn hiển thị thứ hạng, bảng xếp hạng hoặc dữ liệu cần sắp xếp các giá trị cao nhất lên đầu. Dù bạn đang xử lý điểm kiểm tra, số liệu bán hàng hay danh sách theo thứ tự bảng chữ cái cần sắp xếp ngược, rsort() đều xử lý hiệu quả.
Thử thách
DễBạn sẽ nhận một đầu vào: mảng số liệu doanh thu ở định dạng JSON. Đọc đầu vào, chuyển chuỗi JSON thành mảng, dùng rsort() để sắp xếp số liệu doanh thu theo thứ tự giảm dần và in ra mảng đã sắp xếp bằng print_r().
Định dạng đầu vào: Một dòng chứa mảng số gồm các số (ví dụ: [1250,3400,890,2100,1780])
Đầu ra mong đợi: Mảng đã sắp xếp theo thứ tự giảm dần, được hiển thị bằng print_r()
Tự làm thử
<?php
// Đọc đầu vào
$input = trim(fgets(STDIN));
// Chuyển chuỗi JSON thành mảng
$sales = json_decode($input, true);
// TODO: Viết code bên dưới để sắp xếp mảng theo thứ tự giảm dần
// In ra mảng đã sắp xếp
print_r($sales);
?>Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiế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