PHP usort()

Hàm usort() trong PHP

Hàm usort() trong PHP được sử dụng để sắp xếp mảng bằng cách sử dụng một hàm tự định nghĩa. Hàm này cho phép bạn chỉ định một tiêu chí sắp xếp riêng của mình, thay vì phải sử dụng các hàm sắp xếp mặc định như sort() hay asort().

Cú pháp

usort(array & $array, callable $callback);

Tham số

  • $array: Mảng cần sắp xếp. Tham số này sẽ được sửa đổi trực tiếp.
  • $callback: Hàm so sánh được gọi để xác định thứ tự của các phần tử trong mảng. Hàm này nhận vào hai tham số và trả về:
    • Giá trị âm nếu phần tử thứ nhất nhỏ hơn phần tử thứ hai.
    • Giá trị 0 nếu chúng bằng nhau.
    • Giá trị dương nếu phần tử thứ nhất lớn hơn phần tử thứ hai.

Ví dụ

// Định nghĩa mảng
$array = array(
    array("name" => "John", "age" => 25),
    array("name" => "Jane", "age" => 30),
    array("name" => "Doe", "age" => 20)
);

// Hàm so sánh
function compareByAge($a, $b) {
    return $a['age'] - $b['age'];
}

// Sắp xếp mảng theo tuổi
usort($array, 'compareByAge');

// In ra mảng đã sắp xếp
print_r($array);

Kết quả

Đầu ra của ví dụ trên sẽ là một mảng đã được sắp xếp theo tuổi:

Array
(
    [0] => Array
        (
            [name] => Doe
            [age] => 20
        )

    [1] => Array
        (
            [name] => John
            [age] => 25
        )

    [2] => Array
        (
            [name] => Jane
            [age] => 30
        )
)

Lưu ý

Hàm usort() không hỗ trợ cho các mảng đa chiều. Nếu muốn sắp xếp các mảng sâu hơn, bạn sẽ cần phải áp dụng hàm usort() cho các cấp bậc phù hợp hoặc sử dụng các hàm khác như array_multisort().

Tổng kết

Hàm usort() là một công cụ rất hữu ích để sắp xếp mảng tùy chỉnh dựa trên các tiêu chí riêng. Việc sử dụng hàm so sánh có thể giúp xác định thứ tự của các phần tử trong mảng một cách rõ ràng và linh hoạt hơn.