Ở bài trước, bạn đã học về các thao tác đơn giản như tạo mảng, thêm, xóa, duyệt các phần tử mảng số học, mảng liên kết và mảng đa chiều. Để hoàn chỉnh thêm về thao tác mảng, bài này sẽ chỉ cho bạn cách sắp xếp kiểu dữ liệu mảng tăng/giảm theo thứ tự chỉ mục hoặc bảng chữ cái.
Các hàm sắp xếp mảng
Có rất nhiều hàm có sẵn trong PHP giúp bạn thao tác sắp xếp mảng, tuy nhiên bạn cần tìm hiểu trước các hàm cơ bản và thông dụng sau.
- sort() – sắp xếp mảng theo thứ tự tăng dần
- rsort() – sắp xếp mảng theo thứ tự giảm dần
- asort() – sắp xếp mảng liên kết theo thứ tự tăng dần, phụ thuộc theo giá trị của từng phần tử
- ksort() – sắp xếp mảng liên kết theo thứ tự tăng dần, phụ thuộc theo khóa (chỉ mục) của từng phần tử
- arsort() – sắp xếp mảng liên kết theo thứ tự giảm dần, phụ thuộc theo giá trị của từng phần tử
- krsort() – sắp xếp mảng liên kết theo thứ tự giảm dần, phụ thuộc theo khóa (chỉ mục) của từng phần tử
Cách sử dụng các hàm này rất đơn giản, bạn chỉ cần truyền tham số mảng cần sắp xếp, ví dụ sort($array) với $array là đối tượng mảng cần sắp xếp.
Sắp xếp mảng theo thứ tự tăng dần/giảm dần
Bạn có thể dùng 2 hàm sort() và rsort() để sắp xếp mảng theo thứ tự tăng dần hoặc giảm dần. Lưu ý mảng phải là dạng mảng số học, tức có khóa (chỉ mục) là số nguyên.
Chúng ta hãy xét đến các ví dụ đơn giản sau sử dụng hai hàm sort() và rsort().
<?php $names= array("Dammio", "BVN", "John"); sort($names); // sắp xếp mảng theo thứ tự tăng dần bảng chữ cái print_r($names); echo "<br />"; rsort($names); // sắp xếp mảng theo thứ tự giảm dần bảng chữ cái print_r($names); echo "<br />"; $numbers = array(1, 8, 2, 22, 7, 2); sort($numbers); // sắp xếp mảng theo thứ tự số tăng dần print_r($numbers); echo "<br />"; rsort($numbers); // sắp xếp mảng theo thứ tự số giảm dần print_r($numbers); ?>
Sắp xếp mảng liên kết tăng dần/giảm dần theo giá trị
Bạn có thể sử dụng 2 hàm asort() và arsort() để sắp xếp một mảng liên kết theo thứ tự tăng/giảm giá trị. Hãy xét đến các ví dụ sau.
<?php $ages = array("Dammio"=>"13", "BVN"=>"71", "Daisy"=>"36"); asort($ages); // sắp xếp mảng tăng dần theo giá trị của từng phần tử print_r($ages); echo "<br />"; arsort($ages); // sắp xếp mảng giảm dần theo giá trị của từng phần tử print_r($ages); echo "<br />"; ?>
Sắp xếp mảng liên kết tăng dần/giảm dần theo khóa (chỉ mục)
Bạn có thể sử dụng 2 hàm ksort() và krsort() để sắp xếp một mảng liên kết theo thứ tự tăng/giảm giá trị. Hãy xét đến các ví dụ sau.
<?php $ages = array("Dammio"=>"13", "BVN"=>"71", "Daisy"=>"36"); ksort($ages); // sắp xếp mảng tăng dần theo giá trị của từng phần tử print_r($ages); echo "<br />"; krsort($ages); // sắp xếp mảng giảm dần theo giá trị của từng phần tử print_r($ages); echo "<br />"; ?>
Kết luận
Thông qua nội dung bài, bạn đã học cách sắp xếp mảng số học, mảng liên kết tăng/giảm theo giá trị, khóa. Mời bạn tiếp tục theo dõi bài tiếp theo để xem về cách sắp xếp mảng đa chiều.
- APA:
Dammio. (2019). [PHP] Phần 17: Sắp xếp mảng trong PHP. https://www.dammio.com/2019/01/22/php-phan-17-sap-xep-mang-trong-php.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[PHP] Phần 17: Sắp xếp mảng trong PHP},
year = {2019},
url = {https://www.dammio.com/2019/01/22/php-phan-17-sap-xep-mang-trong-php},
urldate = {2024-12-05}
}
[…] [PHP] Phần 17: Sắp xếp mảng trong PHP – 22 tháng 01, 2019 lúc 7:15:09 Chiều […]
[…] [PHP] Phần 17: Sắp xếp mảng trong PHP – 22 tháng 01, 2019 lúc 7:15:09 Chiều […]