Hàm array_multisort[] trả về một mảng đã được sắp xếp. Bạn có thể gán một hoặc nhiều mảng. Hàm sắp xếp mảng đầu tiên và các mảng khác theo sau, sau đó, nếu hai hoặc nhiều giá trị giống nhau, hàm sẽ sắp xếp mảng tiếp theo, v.v.
Ghi chú. Các khóa chuỗi sẽ được duy trì nhưng các khóa số sẽ được lập chỉ mục lại, bắt đầu từ 0 và tăng thêm 1
Ghi chú. Bạn có thể chỉ định các tham số sắp xếp và sắp xếp sau mỗi mảng. Nếu không được chỉ định, mỗi tham số mảng sẽ sử dụng các giá trị mặc định
Để sắp xếp một mảng ngày tháng trong PHP, mã như sau−
Ví dụ
Bản thử trực tiếp
đầu ra
Điều này sẽ tạo ra đầu ra sau−
Array [ [0] => 2019-08-10 [1] => 2019-09-08 [2] => 2019-10-10 [3] => 2019-11-11 ]
Ví dụ
Bây giờ chúng ta hãy xem một ví dụ khác -
Bản thử trực tiếp
strtotime[$date2]] return -1; else return 0; } $dateArr = array["2019-11-11", "2019-10-10","2019-11-11", "2019-09-08","2019-05-11", "2019-01-01"]; usort[$dateArr, "compareDates"]; print_r[$dateArr]; ?>
đầu ra
Điều này sẽ tạo ra đầu ra sau−
Array [ [0] => 2019-11-11 [1] => 2019-11-11 [2] => 2019-10-10 [3] => 2019-09-08 [4] => 2019-05-11 [5] => 2019-01-01 ]
Trang này giải thích cách sắp xếp một mảng nhiều chiều trong PHP. Điều này thường xảy ra khi mảng là kết quả của truy vấn cơ sở dữ liệu
mảng ví dụ
Hãy xem xét mảng đa chiều sau
$array[] = array['name' => 'Dupont', 'age' => 72];
$array[] = array['name' => 'Albert', 'age' => 11];
$array[] = array['name' => 'Durand', 'age' => 56];
$array[] = array['name' => 'Michel', 'age' => 52];
$array[] = array['name' => 'Dupont', 'age' => 36];
$array[] = array['name' => 'Plutot', 'age' => 27];
Tên TuổiDupont72Albert11Durand56Michel52Dupont36Plutot27Sắp xếp theo tên tăng dần
Chúng tôi có một mảng các hàng, nhưng array_multisort[] yêu cầu một mảng các cột, vì vậy chúng tôi sử dụng mã bên dưới để lấy các cột, sau đó thực hiện sắp xếp
A more inuitive way of sorting multidimensional arrays using array_msort[] in just one line, you don't have to divide the original array into per-column-arrays:
$arr1 = array[
array['id'=>1,'name'=>'aA','cat'=>'cc'],
array['id'=>2,'name'=>'aa','cat'=>'dd'],
array['id'=>3,'name'=>'bb','cat'=>'cc'],
array['id'=>4,'name'=>'bb','cat'=>'dd']
];
$arr2 = array_msort[$arr1, array['name'=>SORT_DESC, 'cat'=>SORT_ASC]];
________số 8
arr1:
0:
id: 1 [int]
name: aA [string:2]
cat: cc [string:2]
1:
id: 2 [int]
name: aa [string:2]
cat: dd [string:2]
2:
id: 3 [int]
name: bb [string:2]
cat: cc [string:2]
3:
id: 4 [int]
name: bb [string:2]
cat: dd [string:2]
arr2:
2:
id: 3 [int]
name: bb [string:2]
cat: cc [string:2]
3:
id: 4 [int]
name: bb [string:2]
cat: dd [string:2]
0:
id: 1 [int]
name: aA [string:2]
cat: cc [string:2]
1:
id: 2 [int]
name: aa [string:2]
cat: dd [string:2]
strtotime[$date2]] return -1; else return 0; } $dateArr = array["2019-11-11", "2019-10-10","2019-11-11", "2019-09-08","2019-05-11", "2019-01-01"]; usort[$dateArr, "compareDates"]; print_r[$dateArr]; ?>0
strtotime[$date2]] return -1; else return 0; } $dateArr = array["2019-11-11", "2019-10-10","2019-11-11", "2019-09-08","2019-05-11", "2019-01-01"]; usort[$dateArr, "compareDates"]; print_r[$dateArr]; ?>1
strtotime[$date2]] return -1; else return 0; } $dateArr = array["2019-11-11", "2019-10-10","2019-11-11", "2019-09-08","2019-05-11", "2019-01-01"]; usort[$dateArr, "compareDates"]; print_r[$dateArr]; ?>2
Sắp xếp mảng nhiều chiều theo phần tử chứa ngày tháng. Sử dụng hàm usort[] để sắp xếp mảng. Hàm usort[] là hàm dựng sẵn trong PHP sắp xếp một mảng đã cho bằng cách sử dụng hàm so sánh do người dùng định nghĩa. Hàm này gán các khóa tích phân mới bắt đầu từ 0 cho các phần tử mảng
cú pháp
boolean usort[ $array, "function_name"]
Thông số. Hàm này chấp nhận hai tham số như được hiển thị trong cú pháp trên và được mô tả bên dưới
- mảng $. Tham số này chỉ định mảng mà bạn muốn sắp xếp
- Tên chức năng. Tham số này chỉ định tên của hàm do người dùng xác định để so sánh các giá trị và sắp xếp mảng được chỉ định bởi tham số $array. Hàm này trả về một giá trị số nguyên dựa trên các điều kiện sau. Nếu hai đối số bằng nhau thì nó trả về 0, Nếu đối số thứ nhất lớn hơn thứ hai, nó trả về 1 và nếu đối số thứ nhất nhỏ hơn thứ hai, nó trả về -1
Giá trị trả về. Hàm này trả về giá trị kiểu Boolean. Nó trả về TRUE trong trường hợp thành công và FALSE trong trường hợp thất bại
Chúng tôi sử dụng strtotime để chuyển đổi chuỗi thời gian đã cho thành đối tượng dấu thời gian. Khi chúng tôi có dấu thời gian, chúng tôi trừ chúng để quyết định lớn hơn