x0
Trong thực tế lập trình, dữ liệu thường cần được sắp xếp trước khi hiển thị cho người dùng.
Ví dụ:
Danh sách sản phẩm theo giá tăng dần
Bảng điểm từ cao xuống thấp
Danh sách thành viên theo tên A → Z
Sắp xếp dữ liệu theo mã hoặc ID
PHP cung cấp nhiều hàm sắp xếp có sẵn giúp xử lý cực kỳ nhanh.
1️⃣ sort() — Sắp xếp tăng dần
Sắp xếp giá trị từ nhỏ đến lớn hoặc A → Z.
<?php
$numbers = [5, 2, 8, 1, 9];
sort($numbers);
print_r($numbers);
?>
Kết quả:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 8
[4] => 9
)
Ví dụ chuỗi:
<?php
$fruits = ["Cam", "Táo", "Chuối"];
sort($fruits);
print_r($fruits);
?>
Kết quả:
Array
(
[0] => Cam
[1] => Chuối
[2] => Táo
)
⚠️ Lưu ý
sort() sẽ:
Sắp xếp lại giá trị
Đánh lại chỉ số từ 0
Ví dụ:
<?php
$data = [
10 => "PHP",
20 => "Java",
30 => "Python"
];
sort($data);
print_r($data);
?>
Kết quả:
Array
(
[0] => Java
[1] => PHP
[2] => Python
)
Key cũ bị mất.
2️⃣ rsort() — Sắp xếp giảm dần
Ngược lại với sort().
<?php
$numbers = [5, 2, 8, 1, 9];
rsort($numbers);
print_r($numbers);
?>
Kết quả:
Array
(
[0] => 9
[1] => 8
[2] => 5
[3] => 2
[4] => 1
)
Ví dụ bảng điểm:
<?php
$scores = [8, 10, 6, 9, 7];
rsort($scores);
print_r($scores);
?>
Kết quả:
10
9
8
7
6
3️⃣ asort() — Sắp xếp theo VALUE và giữ KEY
Rất hữu ích với mảng kết hợp.
<?php
$students = [
"Nam" => 8,
"Lan" => 10,
"Huy" => 7
];
asort($students);
print_r($students);
?>
Kết quả:
Array
(
[Huy] => 7
[Nam] => 8
[Lan] => 10
)
Key được giữ nguyên.
Điều này rất quan trọng khi:
Danh sách sản phẩm
Danh sách người dùng
Danh sách điểm số
4️⃣ ksort() — Sắp xếp theo KEY
Thay vì sắp xếp giá trị, hàm này sắp xếp khóa.
<?php
$students = [
"Nam" => 8,
"Lan" => 10,
"Huy" => 7
];
ksort($students);
print_r($students);
?>
Kết quả:
Array
(
[Huy] => 7
[Lan] => 10
[Nam] => 8
)
Ví dụ mã sản phẩm:
<?php
$products = [
"SP003" => "Laptop",
"SP001" => "Chuột",
"SP002" => "Bàn phím"
];
ksort($products);
print_r($products);
?>
Kết quả:
SP001
SP002
SP003
🎯 So sánh nhanh
| 🔢 | 🛠️ Hàm | 📋 Sắp xếp theo | 🔑 Giữ key? |
|---|---|---|---|
| 1️⃣ | sort() | Value tăng dần | ❌ Không |
| 2️⃣ | rsort() | Value giảm dần | ❌ Không |
| 3️⃣ | asort() | Value tăng dần | ✅ Có |
| 4️⃣ | ksort() | Key tăng dần | ✅ Có |
💡 Ví dụ thực tế
Sắp xếp bảng điểm học sinh:
<?php
$scores = [
"Nam" => 8,
"Lan" => 10,
"Huy" => 7,
"Minh" => 9
];
arsort($scores);
foreach ($scores as $name => $score) {
echo $name . " : " . $score . "<br>";
}
?>
Kết quả:
Lan : 10
Minh : 9
Nam : 8
Huy : 7
Đây chính là cách tạo bảng xếp hạng đơn giản.
🧠 Ghi nhớ
✅ sort() → tăng dần theo giá trị
✅ rsort() → giảm dần theo giá trị
✅ asort() → tăng dần theo giá trị và giữ key
✅ ksort() → tăng dần theo key
✅ Các hàm sắp xếp của PHP hoạt động trực tiếp trên mảng gốc
🏆 Bài tập thực hành
Bài 1
Tạo mảng:
[15, 8, 20, 3, 12]
Sắp xếp tăng dần bằng sort().
Bài 2
Sắp xếp giảm dần mảng trên bằng rsort().
Bài 3
Tạo mảng:
[
"PHP" => 9,
"Java" => 7,
"Python" => 10
]
Sử dụng asort().
Bài 4
Sử dụng ksort() với:
[
"C" => 1,
"A" => 2,
"B" => 3
]
Bài 5
Tạo bảng xếp hạng điểm số bằng foreach kết hợp arsort().
🎉 Bài tiếp theo: Bài 16 — GLOBAL & SUPER GLOBAL, nơi chúng ta sẽ tìm hiểu cách PHP trao đổi dữ liệu giữa các file, URL, form và máy chủ.




Không có nhận xét nào:
Đăng nhận xét