Hàm arsort() trong PHP
Trần Thị Vân
- 1197
- 29/07/2025
Chức năng của Hàm arsort() trong PHP
Hàm arsort() trong PHP dùng để sắp xếp các phần tử trong một mảng theo giá trị giảm dần và không xóa bỏ khóa (key) của các phần tử trong mảng, hàm này sắp xếp tất cả các phần tử có giá trị là số giảm dần hoặc sắp xếp tất cả phần tử có giá trị chuỗi giảm dần, nếu trong tất cả phần tử có cả giá trị số và chữ thì nó lấy các ký tự đầu tiên trong chuỗi là số để sắp xếp với các giá trị số.
Cú pháp của Hàm arsort() trong PHP
arsort($biến_mảng);
$biến_mảng: Biến của mảng.
Ví dụ Hàm arsort() trong PHP
<h2>Hàm arsort() sắp xếp giá trị chuỗi giảm dần</h2>
<?php
$manggiatrichu = array("Vân","Lực","Quỳnh");
arsort($manggiatrichu);
foreach($manggiatrichu as $key => $value){
echo $key." - ".$value."<br>";
}?>
<h2>Hàm arsort() sắp xếp giá trị số giảm dần</h2>
<?php
$manggiatriso = array(29,35,1);
arsort($manggiatriso);
foreach($manggiatriso as $key => $value){
echo $key." - ".$value."<br>";
}
?>
<h2>Hàm arsort() sắp xếp giá trị số trong mảng liên kết giảm dần</h2>
<?php
$manglienket = array("Lực"=>"35", "Quỳnh"=>"1", "Vân"=>"29");
arsort($manglienket);
foreach($manglienket as $key => $value) {
echo "Key = " . $key . ", Value = " . $value;
echo "<br>";
}
?>
Kết quả:
/////Hàm arsort() sắp xếp giá trị chuỗi giảm dần
0 - Vân
2 - Quỳnh
1 - Lực
/////Hàm arsort() sắp xếp giá trị số giảm dần
1 - 35
0 - 29
2 - 1
/////Hàm arsort() sắp xếp giá trị số trong mảng liên kết giảm dần
Key = Lực, Value = 35
Key = Vân, Value = 29
Key = Quỳnh, Value = 1
Những lưu ý khi sử dụng hàm arsort() trong PHP
Khi sử dụng arsort(), điều quan trọng không chỉ là sắp xếp dữ liệu theo thứ tự giảm dần mà còn phải hiểu cách hàm tác động lên mảng và khóa phần tử. Điều này giúp tránh những lỗi không mong muốn khi xử lý dữ liệu trong thực tế.
arsort() có làm thay đổi mảng ban đầu không?
Có. arsort() sắp xếp trực tiếp trên chính mảng được truyền vào và giữ nguyên mối liên hệ giữa khóa với giá trị tương ứng. Vì vậy, nếu cần giữ lại dữ liệu gốc, bạn nên tạo một bản sao trước khi thực hiện sắp xếp.
<?php
$products = [
'product_a' => 120,
'product_b' => 350,
'product_c' => 200
];
$sortedProducts = $products;
arsort($sortedProducts);
print_r($products);
print_r($sortedProducts);
?>
Trong ví dụ trên, $products vẫn giữ thứ tự ban đầu vì thao tác sắp xếp được thực hiện trên bản sao $sortedProducts. Đây là cách phù hợp khi một mảng cần được sử dụng cho nhiều mục đích khác nhau.
Phân biệt arsort() với rsort() và asort()
Cả ba hàm đều dùng để sắp xếp mảng nhưng có cách hoạt động khác nhau. arsort() sắp xếp giá trị theo thứ tự giảm dần và giữ nguyên khóa; asort() cũng giữ nguyên khóa nhưng sắp xếp giá trị theo thứ tự tăng dần; còn rsort() sắp xếp giảm dần nhưng đánh lại khóa của mảng.
| Hàm | Thứ tự giá trị | Giữ khóa |
|---|---|---|
| arsort() | Giảm dần | Có |
| asort() | Tăng dần | Có |
| rsort() | Giảm dần | Không |
Điểm khác biệt về khóa rất quan trọng khi mảng sử dụng các khóa có ý nghĩa, chẳng hạn mã sản phẩm, tên thuộc tính hoặc mã định danh. Nếu chỉ cần danh sách giá trị và không cần giữ khóa cũ, rsort() có thể phù hợp hơn.
Khi nào nên dùng arsort() thay vì các hàm sắp xếp khác?
Nên chọn arsort() khi thứ tự của giá trị cần được thay đổi nhưng khóa phải đi cùng đúng phần tử ban đầu. Trường hợp thường gặp là sắp xếp bảng điểm, thống kê số lượng, doanh thu hoặc dữ liệu được gắn với một mã riêng.
Ngược lại, nếu khóa không còn giá trị sau khi sắp xếp, có thể cân nhắc các hàm sắp xếp không bảo toàn khóa. Việc chọn đúng hàm ngay từ đầu giúp mã PHP dễ đọc hơn và hạn chế phải xử lý lại dữ liệu sau khi sắp xếp.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Hàm arsort() trong PHP.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *