Để sắp xếp trên một cột của các giá trị, sự kết hợp của array_column[]
và array_multisort[]
là một cách hợp lý. Thử nghiệm
array_multisort[array_column[$array, 'count'], $array];
Hoặc chỉ gọi usort[]
với toán tử tàu vũ trụ để thực hiện ít lặp lại trong kịch bản này. Thử nghiệm
usort[$array, fn[$a, $b] => $a->count $b->count];
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 23420
trước
usort[$array, fn[$a, $b] => $a->count $b->count];
0]. Đây là một tính năng mặc định đáng tin cậy.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
$property = 'count';
array_multisort[array_column[$array, $property], $array];
Demo usort với biến
$property = 'count';
usort[$array, fn[$a, $b] => $a->$property $b->$property];
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 phân loại mặc định của ____ 7 là tăng dần, do đó, việc sử dụng rõ ràng
usort[$array, fn[$a, $b] => $a->count $b->count];
2 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 usort[$array, fn[$a, $b] => $a->count $b->count];
3 giữa hai mảng [là tham số thứ hai].usort[]
sẽ sắp xếp tăng dần khi thân chức năng tùy chỉnh đặt dữ liệu
usort[$array, fn[$a, $b] => $a->count $b->count];
5 ở phía bên trái của toán tử tàu vũ trụ và dữ liệu usort[$array, fn[$a, $b] => $a->count $b->count];
6 ở phía bên phải. Để sắp xếp theo hướng giảm dần, chỉ cần ghi dữ liệu usort[$array, fn[$a, $b] => $a->count $b->count];
6 ở bên trái và dữ liệu usort[$array, fn[$a, $b] => $a->count $b->count];
5 ở 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ư
usort[$array, fn[$a, $b] => $a->count $b->count];
9] 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ư $property = 'count';
array_multisort[array_column[$array, $property], $array];
0 hoặc $property = 'count';
array_multisort[array_column[$array, $property], $array];
1] để 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.
Gần đây tôi cần hiển thị một danh sách các tác giả trong blog WordPress. & nbsp; Mục tiêu là sắp xếp danh sách tác giả theo số lượng bài đăng trước khi xuất danh sách. & nbsp; Phương thức tính toán số lượng bài đăng không phải là khóa có thể sắp xếp trong WordPress '
3, vì vậy tôi phải tự mình sắp xếp danh sách kết quả. & NBSP; Phương thức $property = 'count';
array_multisort[array_column[$array, $property], $array];
4 của PHP, cùng với chức năng tùy chỉnh, cho phép bạn hoàn thành kỳ tích sắp xếp một bộ sưu tập các đối tượng theo khóa.$property = 'count';
array_multisort[array_column[$array, $property], $array];
PHP
Bước đầu tiên là tạo chức năng sắp xếp - đây là chức năng đó:
function sort_objects_by_total[$a, $b] { if[$a->total_posts == $b->total_posts]{ return 0 ; } return [$a->total_posts < $b->total_posts] ? -1 : 1; }
Hàm trả về -1 [nhỏ hơn], 0 [bằng] hoặc 1 [lớn hơn] khi thực hiện so sánh sắp xếp. & nbsp; cuối cùng là áp dụng chức năng sắp xếp cho mảng, được thực hiện bởi Usort:
usort[$users, 'sort_objects_by_total'];
Mã trên bây giờ đảm bảo rằng mảng tác giả của tôi được sắp xếp bởi Total_Posts. & nbsp; giữ đoạn này trong hộp công cụ PHP của bạn cho tương lai - Tôi chắc chắn bạn sẽ cần nó lúc này hay lúc khác.
Các tính năng gần đây
Phục vụ phông chữ từ & nbsp; cdn
Để có hiệu suất tối đa, tất cả chúng ta đều biết rằng chúng ta phải đặt tài sản của mình vào CDN [một tên miền khác]. & nbsp; cùng với các tài sản đó là các phông chữ web tùy chỉnh. & nbsp; Thật không may, các phông chữ web tùy chỉnh qua CDN [hoặc bất kỳ yêu cầu phông chữ chéo nào] không hoạt động trong Firefox hoặc Internet Explorer [chính xác như vậy, theo thông số kỹ thuật] mặc dù ...
Những bản demo đáng kinh ngạc
Nhiều hình nền với & nbsp; CSS
Bất cứ ai ở trong ngành phát triển web trong hơn 5 năm đều biết rằng có những đặc điểm nhất định mà chúng ta nên có vài năm trước. Một trong những tính năng đó là trình giữ chỗ HTML5; Chúng tôi đã sử dụng shims JavaScript trong một thập kỷ trước khi người giữ chỗ đến ...