Kết nối

[PHP] Phần 17: Sắp xếp mảng trong PHP

50 lượt xem 
 Cập nhật lần cuối: 24/01/2019 lúc 15:46:54
Thể loại: Lập trình Web với PHP 

Ở 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.

Bình luận Facebook

2
Để lại bình luận

avatar
1000
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Các tác giả bình luận
Các tác giả bình luận gần đây
  Theo dõi  
mới nhất cũ nhất được bình chọn nhiều nhất
Thông báo của
trackback

[…] [PHP] Phần 17: Sắp xếp mảng trong PHP – 22 tháng 01, 2019 lúc 7:15:09 Chiều […]

trackback

[…] [PHP] Phần 17: Sắp xếp mảng trong PHP – 22 tháng 01, 2019 lúc 7:15:09 Chiều […]