1. Hàm asort() trong PHP

Hàm asort() trong PHP được sử dụng để sắp xếp mảng trong PHP. Cụ thể hàm asort() sẽ sắp xếp mảng theo thứ tự tăng dần theo các giá trị của mảng và duy trì liên kết chỉ mục. Hàm asort() sẽ sắp xếp theo cách mà mối quan hệ giữa các chỉ số và giá trị được duy trì. Có nghĩa là sắp xếp mảng theo thứ tự tăng dần, sao cho các key của nó duy trì mối tương quan của chúng với các giá trị mà chúng được liên kết. Ta chủ yếu sử dụng hàm này khi sắp xếp các mảng liên hợp khi mà thứ tự phần tử thực sự của nó là đặc biệt quan trọng. Hàm asort() được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp của hàm asort() trong PHP

Ta có cú pháp của hàm asort() trong PHP là :

asort( $array , $type )

Trong đó :

  • $array : mảng đầu vào mà ta cần xử lý. Tham số này là bắt buộc trong hàm
  • $type : Tham số này chỉ định tên của một hàm do người dùng định nghĩa sẽ được sử dụng để sắp xếp các key của mảng $array . Hàm so sánh này được gán là một số nguyên. Tham số này là không bắt buộc trong hàm

Ta có những giá trị của $type là :

  • 0 = SORT_REGULAR : giá trị mặc định của $type . Nó sẽ so sánh các value một cách bình thường mà không thay đổi loại
  • 1 = SORT_NUMERIC : so sánh các value dưới dạng số
  • 2 = SORT_STRING : so sánh các value dưới dạng chuỗi
  • 3 = SORT_LOCALE_STRING : so sánh các value dưới dạng chuỗi và dựa trên ngôn ngữ hiện tại
  • 4 = SORT_NATURAL : So sánh các value dưới dạng chuỗi bằng cách sử dụng thứ tự tự nhiên
  • 5 = SORT_FLAG_CASE : sử dụng kết hợp với SORT_STRING hoặc SORT_NATURAL để sắp xếp chuỗi mà không phân biệt chữ hoa chữ thường.

Hàm asort() sẽ trả về True khi đã sắp xếp thành công. Ngược lại giá trị False sẽ được trả về nếu như thất bại. Nếu trong quá trình so sánh mà mảng có những giá trị bằng nhau thì chúng sẽ vẫn giữ nguyên thứ tự ban đầu.

Ví dụ : Sắp xếp một mảng kết hợp theo thứ tự tăng dần (theo value)

<?php 
$a1=array("PHP"=>"35","Java"=>"37","Python"=>"43"); 
asort($a1); 

echo '<pre>'; 
print_r($a1); 
?>

Kết quả

Array
(
    [PHP] => 35
    [Java] => 37
    [Python] => 43
)

Sau khi truyền mảng $a1 vào hàm asort() thì mảng này đã được xắp xếp luôn theo thứ tự tăng dần. Ta có thể dễ dàng nhận thấy rằng hàm này ngược lại với hàm arsort() mà ta đã tìm hiểu ở bài trước.

3. Ví dụ về hàm asort() trong PHP

Ví dụ 1:

<?php
$arr = array("0" => "PHP",
            "1" => "Java",
            "2" => "Python",
            "3" => "JavaScript",
            "4" => "SQL",
            "5" => "CSS",
            "6" => "HTML",
            "7" => "C"
        );
arsort($arr);
foreach ($arr as $key => $val) {
    echo "[$key] = $val";
    echo"<br>";
}
?>

Kết quả

[7] = C
[5] = CSS
[6] = HTML
[1] = Java
[3] = Javascript
[0] = PHP
[2] = Python
[4] = SQL

Ví dụ 2:

<?php
$arr = array("a" => 11,
            "b" => 22,
            "d" => 33,
            "n" => 44,
            "o" => 55,
            "p" => 66,
            "p" => 77,
            "q" => 88,
        );
asort($arr);
    
foreach ($arr as $key => $val) {
    echo "[$key] = $val";
    echo"<br>";
}
?>

Kết quả

[a] = 11
[b] = 22
[d] = 33
[n] = 44
[o] = 55
[p] = 77
[q] = 88

Ví dụ 3:

<?php
$arr = array("0" => "PHP",
            "1" => "Java",
            "2" => "Python",
            "3" => "JavaScript",
            "4" => "SQL",
            "5" => "CSS",
            "6" => "HTML",
            "7" => "C"
        );
asort($arr,2);
foreach ($arr as $key => $val) {
    echo "[$key] = $val";
    echo"<br>";
}
?>

Kết quả

[7] = C
[5] = CSS
[6] = HTML
[1] = Java
[3] = Javascript
[0] = PHP
[2] = Python
[4] = SQL