Tìm hiểu về sự khác nhau của hàm sắp xếp usoft và rsoft

Thứ sáu - 26/04/2024 02:56

Hai hàm usort()rsort() là hai hàm khác nhau trong PHP và được sử dụng để sắp xếp một mảng theo một tiêu chí nhất định. Dưới đây là sự khác biệt chính giữa hai hàm này:

  1. usort(): Hàm usort() được sử dụng để sắp xếp một mảng theo một tiêu chí tùy chỉnh được xác định bởi một hàm so sánh. Bạn cần truyền một hàm so sánh vào usort(), và hàm này sẽ so sánh các phần tử của mảng và xác định thứ tự sắp xếp dựa trên kết quả của hàm so sánh.

    $arr = [3, 1, 2];
    usort($arr, function($a, $b) {
        return $a - $b; // Sắp xếp tăng dần
    });
    // Kết quả: $arr = [1, 2, 3]
    
usort($data, function($a, $b) {
	return $b['money_total'] <=> $a['money_total'];
});

Đoạn mã bạn đã cung cấp sử dụng hàm usort() để sắp xếp mảng $data theo giá trị của trường money_total. Dưới đây là cách giải thích:

  1. usort($data, function($a, $b) { ... });: Hàm usort() trong PHP được sử dụng để sắp xếp một mảng theo một tiêu chí nhất định. Ở đây, chúng ta cần sắp xếp mảng $data.

  2. function($a, $b) { ... }: Đây là một hàm gọi là hàm so sánh. Hàm này được truyền vào usort() để so sánh các phần tử của mảng để xác định thứ tự sắp xếp. $a$b là hai phần tử cần so sánh.

  3. return $b['money_total'] <=> $a['money_total'];: Trong hàm so sánh này, chúng ta so sánh giá trị của trường money_total giữa hai phần tử $a$b. Toán tử <=> là toán tử so sánh "spaceship", nó trả về 0 nếu hai giá trị bằng nhau, 1 nếu $b lớn hơn $a, và -1 nếu $a lớn hơn $b. Do đó, nếu money_total của $b lớn hơn money_total của $a, chúng ta trả về 1 để cho biết $b nên đứng trước $a trong thứ tự sắp xếp.

Kết quả của đoạn mã này là mảng $data sẽ được sắp xếp theo thứ tự giảm dần của giá trị trong trường money_total. Cụ thể là các dòng dữ liệu có money_total lớn nhất sẽ nằm ở đầu mảng.

rsort(): Hàm rsort() được sử dụng để sắp xếp một mảng theo thứ tự giảm dần. Nó sắp xếp mảng mà không cần truyền vào một hàm so sánh tùy chỉnh. rsort() sẽ tự động sắp xếp các phần tử của mảng theo thứ tự giảm dần.
$arr = [3, 1, 2];
rsort($arr);
// Kết quả: $arr = [3, 2, 1]
Tóm lại, usort() cho phép bạn sắp xếp một mảng theo một tiêu chí tùy chỉnh bằng cách truyền vào một hàm so sánh, trong khi rsort() sắp xếp một mảng theo thứ tự giảm dần mà không cần phải xác định một hàm so sánh tùy chỉnh.

Tác giả: admin

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây