Hướng dẫn how to sort array of objects in php? - cách sắp xếp mảng đối tượng trong php?
Để sắp xếp trên một cột của các giá trị, sự kết hợp của
Hoặc chỉ gọi
Lưu ý rằng mặc dù các giá trị đếm được đúc thành giá trị loại chuỗi trong mảng đầu vào, cả hai hàm sắp xếp sẽ sắp xếp chính xác các giá trị bằng số thay vì bảng chữ cái (đặt sai Ngay cả khi bạn đang khai báo cột để sắp xếp, cả hai cách tiếp cận đều cho phép biến được sử dụng mà không có bất kỳ kỹ thuật bổ sung nào. Bản demo đaort với biến
Demo usort với biến
Cả hai hàm sắp xếp gốc sửa đổi theo tham chiếu, vì vậy không cố gắng truy cập mảng được sắp xếp theo giá trị trả về của chúng. Hướng sắp xếp mặc định của ________ 6 là tăng dần, do đó, việc sử dụng rõ ràng 1 giữa hai tham số mảng không có lợi. Nếu mong muốn sắp xếp giảm dần, hãy viết 2 giữa hai mảng (là tham số thứ hai).
4 ở phía bên trái của toán tử tàu vũ trụ và dữ liệu 5 ở phía bên phải. Để sắp xếp theo hướng giảm dần, chỉ cần ghi dữ liệu 5 ở bên trái và dữ liệu 4 ở bên phải.Cả hai cách tiếp cận đều có khả năng nhận được nhiều quy tắc sắp xếp, nhưng vì câu hỏi này chỉ yêu cầu sắp xếp trên một cột duy nhất, hướng dẫn đó là không phù hợp ở đây. Sẽ kém hiệu quả khi gọi một hàm (như 8) trên mỗi lần lặp trong khi sắp xếp. Đây không còn là thực hành tốt nhất. Cả hai đều không sử dụng so sánh hai chiều (như 9 hoặc 0) để trả về kết quả Boolean. Một so sánh ba chiều được dự kiến từ usort() .Để sắp xếp dữ liệu với nhiều quy tắc/cột/thuộc tính, câu trả lời này đưa ra hướng dẫn tốt. Cải thiện bài viết Lưu bài viết Cho một mảng các đối tượng và tác vụ là sắp xếp mảng theo đối tượng theo các trường đã cho. Cách tiếp cận: Hàm usort () là một hàm sẵn có trong PHP được sử dụng để sắp xếp mảng các phần tử một cách có điều kiện với hàm so sánh nhất định. Hàm usort () cũng có thể được sử dụng để sắp xếp một mảng các đối tượng theo trường đối tượng. Gọi hàm usort () với đối số thứ nhất là mảng của các đối tượng và đối số thứ hai là hàm so sánh trên cơ sở so sánh giữa hai đối tượng mảng phải được thực hiện. Example: 2 3 4 5 6 7 5 6 0 1 2 3 4 0 6 2 8 4 0Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )1 2Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )3 7Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )5 7 5 6 0 1 2array_column() 22 0 6 2array_column() 7 4 0____41 2array_multisort() 2 7Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )5 7 5 6 0 1 2usort() 1 4 0 6 2usort() 6 4 0____41 223420 1 723420 3
723420 8 23420 9 0420 1420 0
420 4 7420 6 420 7 420 8420 9 00 0 02 03420 9 05 6 07 0 02 10420 9 05 1 07 0 02 17420 9 05Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) )1 07 7 23 23
26420 9 00 7 30 4 32 420 8420 923420 4 7 37 30420 4 23
42 43420 0 45 00 7 37 43 50 45 52 23 54 4 56 6 58420 0 323420 4 62 6 6423420 4 66 5423420 4 69 54420 0 7223420 4 62 6 7623420 4 66 5423420 4 81Output: Original object array: Array ( [0] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) [1] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [2] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) ) Sorted object array: Array ( [0] => geekSchool Object ( [score] => 50 [name] => Tanya [subject] => Advanced Algorithms ) [1] => geekSchool Object ( [score] => 75 [name] => Jack [subject] => Distributed Computing ) [2] => geekSchool Object ( [score] => 100 [name] => Sam [subject] => Data Structures ) ) |