Hàm asort() trong PHP
Trần Thị Vân
- 1237
- 29/07/2025
Chức năng của Hàm asort() trong PHP
Hàm asort() trong PHP dùng để sắp xếp các phần tử trong một mảng theo giá trị tăng 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ố tăng dần hoặc sắp xếp tất cả phần tử có giá trị chuỗi tăng 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 asort() trong PHP
asort($biến_mảng);
$biến_mảng: Biến của mảng.
Ví dụ Hàm asort() trong PHP
<h2>Hàm asort() sắp xếp giá trị chuỗi tăng dần</h2>
<?php
$manggiatrichu = array("Vân","Lực","Quỳnh");
asort($manggiatrichu);
foreach($manggiatrichu as $key => $value){
echo $key." - ".$value."<br>";
}?>
<h2>Hàm asort() sắp xếp giá trị số tăng dần</h2>
<?php
$manggiatriso = array(29,35,1);
asort($manggiatriso);
foreach($manggiatriso as $key => $value){
echo $key." - ".$value."<br>";
}
?>
<h2>Hàm asort() sắp xếp giá trị số trong mảng liên kết tăng dần</h2>
<?php
$manglienket = array("Lực"=>"35", "Quỳnh"=>"1", "Vân"=>"29");
asort($manglienket);
foreach($manglienket as $key => $value) {
echo "Key = " . $key . ", Value = " . $value;
echo "<br>";
}
?>
Kết quả:
/////Hàm asort() sắp xếp giá trị chuỗi tăng dần
1 - Lực
2 - Quỳnh
0 - Vân
/////Hàm asort() sắp xếp giá trị số tăng dần
2 - 1
0 - 29
1 - 35
/////Hàm asort() sắp xếp giá trị số trong mảng liên kết tăng dần
Key = Quỳnh, Value = 1
Key = Vân, Value = 29
Key = Lực, Value = 35
Những lưu ý quan trọng khi sử dụng hàm asort() trong PHP
Khi sử dụng asort(), điều quan trọng nhất là hiểu cách hàm xử lý giá trị và key của mảng. Hàm này phù hợp khi cần sắp xếp dữ liệu theo giá trị nhưng vẫn muốn giữ mối liên hệ giữa từng key với giá trị ban đầu.
asort() giữ nguyên key của mảng như thế nào?
Khác với cách sắp xếp lại chỉ số của một số hàm xử lý mảng, asort() giữ nguyên key tương ứng với từng phần tử. Sau khi sắp xếp, giá trị có thể thay đổi vị trí nhưng key vẫn đi cùng giá trị đó.
Điều này đặc biệt hữu ích với mảng kết hợp, chẳng hạn khi key đại diện cho mã sản phẩm còn value là giá bán. Sau khi sắp xếp theo giá, mã sản phẩm vẫn được bảo toàn nên có thể xác định chính xác giá trị thuộc về đối tượng nào.
<?php
$prices = [
"SP01" => 350000,
"SP02" => 150000,
"SP03" => 250000
];
asort($prices);
print_r($prices);
?>
Kết quả sẽ được sắp xếp theo giá từ thấp đến cao, trong khi các key SP01, SP02 và SP03 vẫn được giữ nguyên. Vì vậy, nếu dữ liệu cần duy trì quan hệ giữa tên định danh và giá trị, asort() là lựa chọn phù hợp.
Khi nào nên dùng asort() thay vì sort()?
Nên chọn asort() khi thứ tự của các giá trị cần thay đổi nhưng key vẫn có ý nghĩa đối với dữ liệu. Đây là trường hợp thường gặp khi xử lý mảng kết hợp chứa thông tin sản phẩm, người dùng, điểm số hoặc các dữ liệu được gắn mã định danh.
Ngược lại, nếu key không có giá trị sử dụng sau khi sắp xếp và chỉ cần một mảng được sắp xếp lại theo giá trị, sort() có thể phù hợp hơn.
Điểm cần nhớ là lựa chọn hàm không chỉ phụ thuộc vào việc muốn sắp xếp tăng hay giảm, mà còn phụ thuộc vào việc có cần bảo toàn key ban đầu hay không. Đây là yếu tố giúp tránh làm mất mối liên hệ giữa 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 asort() 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 *