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.