Sắp xếp mảng php theo trường

Eneko

Theo

28 Tháng một, 2014

·

1 phút đọc

Sắp xếp một mảng các đối tượng trong PHP theo trường

function cmp($a, $b)
{
return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

Hoặc phiên bản ngắn hơn sử dụng bao đóng

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});

Tham khảo. http. //php. net/thủ công/vi/chức năng. sử dụng. php
http. // stackoverflow. com/câu hỏi/4282413/php-sort-array-of-objects-by-object-fields

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ổiDupont72Albert11Durand56Michel52Dupont36Plutot27

Sắ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

Việc lấy một phần thông tin cụ thể từ dữ liệu đã sắp xếp luôn dễ dàng hơn, nếu không, bạn phải lần lượt xem qua từng phần tử của mảng

Ví dụ: giả sử bạn đã lưu trữ điểm của các học sinh khác nhau trong một lớp trong một mảng hoặc một bảng. Nếu dữ liệu không được sắp xếp theo điểm đạt được, bạn sẽ phải xem điểm của từng học sinh trong lớp trước khi có thể biết ai đạt điểm cao nhất và thấp nhất. Nếu bảng đã được sắp xếp từ thấp đến cao dựa trên điểm số, chỉ cần nhìn vào điểm của sinh viên đầu tiên sẽ cho bạn biết điểm thấp nhất

Sắp xếp làm cho nhiều tác vụ yêu cầu truy cập hoặc lấy một bộ dữ liệu cụ thể trở nên rất dễ dàng và hiệu quả. Trong hướng dẫn này, chúng ta sẽ học cách sử dụng các hàm PHP có sẵn để sắp xếp các loại mảng khác nhau

Sắp xếp một mảng theo giá trị

Sắp xếp một mảng theo giá trị của các phần tử của nó rất dễ dàng trong PHP. Bạn có thể chọn duy trì hoặc loại bỏ các liên kết khóa-giá trị và bạn cũng có thể xác định các hàm của riêng mình để chỉ ra cách sắp xếp các phần tử. Tôi sẽ chỉ cho bạn cách thực hiện trong phần hướng dẫn này

Bạn có thể sử dụng hàm

5
68 để sắp xếp các giá trị của một mảng từ thấp đến cao. Tuy nhiên, nó sẽ không duy trì bất kỳ liên kết khóa-giá trị nào khi sắp xếp mảng. Các khóa mới được gán cho các phần tử được sắp xếp thay vì sắp xếp lại đơn giản. Tham số thứ hai tùy chọn cho phép bạn chỉ định cách sắp xếp các phần tử. Nó có thể có sáu giá trị khác nhau

  1. 5
    69—sắp xếp các giá trị mà không thay đổi loại của chúng
  2. 5
    70—sắp xếp các giá trị bằng cách so sánh chúng bằng số
  3. 5
    71—sắp xếp các giá trị bằng cách so sánh chúng dưới dạng chuỗi
  4. 5
    72—so sánh các giá trị dưới dạng chuỗi dựa trên ngôn ngữ hiện tại. Bạn có thể tự cập nhật ngôn ngữ bằng cách sử dụng
    5
    73
  5. 5
    74—sắp xếp các mục bằng cách sử dụng "thứ tự tự nhiên" trong khi so sánh chúng dưới dạng chuỗi
  6. 5
    75—có thể kết hợp với
    5
    71 hoặc
    5
    74 để tắt phân biệt chữ hoa chữ thường trong khi sắp xếp chuỗi

Dưới đây là một số ví dụ về sắp xếp để giúp bạn nhanh chóng nắm bắt được sự khác biệt giữa tất cả các cờ sắp xếp

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
7
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
$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);
0
$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);
1
$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);
2
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
41
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
43
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
47
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
50
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
52
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
41
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
43
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
60
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
63
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
65
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
41
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
43
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
73

Trong ví dụ đầu tiên, sắp xếp thông thường, các chuỗi số được chuyển đổi thành giá trị số của chúng và việc sắp xếp được thực hiện tương ứng. Chuỗi "Apple" không phải là số nên để nguyên và được so sánh như một chuỗi

Trong ví dụ thứ hai, sắp xếp theo số, chúng tôi muốn dữ liệu được sắp xếp dựa trên giá trị số, vì vậy "Apple" được chuyển thành giá trị số 0 và xuất hiện trước. Phần còn lại của các giá trị được sắp xếp như mong đợi

Trong ví dụ thứ ba, tất cả các giá trị được coi là chuỗi. Điều này có nghĩa là thay vì so sánh giá trị số của 123 hoặc 3249832 với 38, chúng được so sánh dưới dạng chuỗi—mỗi lần một ký tự. Vì "1" đứng trước "3", giá trị 123 được coi là thấp hơn 38

Nếu bạn muốn sắp xếp các giá trị mảng của mình từ cao xuống thấp thay vì từ thấp đến cao, bạn có thể làm như vậy với sự trợ giúp của hàm

5
78. Nó chấp nhận tất cả các tham số giống như
5
79 nhưng sắp xếp các giá trị theo thứ tự ngược lại. Nó cũng không duy trì bất kỳ liên kết khóa-giá trị nào, vì vậy đây không phải là lựa chọn tốt để sắp xếp các mảng kết hợp

Sắp xếp một mảng kết hợp

Các liên kết khóa-giá trị trở nên quan trọng khi bạn đang xử lý các mảng kết hợp

Xem xét ví dụ sau, trong đó một mảng kết hợp được sử dụng để lưu trữ tên của những người khác nhau và loại trái cây yêu thích của họ. Nếu bạn muốn sắp xếp danh sách theo thứ tự abc theo tên của trái cây, sử dụng hàm

5
79 từ phần trước sẽ dẫn đến việc mất các phím liên quan

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
78
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
81
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
83
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
85
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
5
2
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
5
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
5
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
5
8
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
$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);
00
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
$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);
02
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
$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);
07
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
$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);
10
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
83
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
85
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
$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);
17
$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);
18
5
0
$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);
20
$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);
21
$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);
22
$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);
23
$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);
24
$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);
25
$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);
26
$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);
27
$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);
28
$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);
29
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
401
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Như bạn có thể thấy, chúng tôi không chỉ mất liên kết của mọi người với loại trái cây yêu thích của họ, mà chúng tôi còn mất tên của những người khác nhau. Mỗi giá trị được sắp xếp đã được gán một chỉ số số mới dựa trên vị trí của nó trong mảng được sắp xếp

Để giúp bạn giải quyết vấn đề này một cách dễ dàng, PHP có hai hàm khác nhau giúp duy trì liên kết khóa-giá trị trong khi sắp xếp các mảng theo giá trị của chúng. Hai chức năng này là

5
81 và
5
82. Đoạn mã sau sắp xếp cùng một mảng
5
83 nhưng sử dụng
5
81 để làm như vậy

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
78
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
81
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
83
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
85
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
5
2
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
5
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
5
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
5
8
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
$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);
00
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
$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);
02
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
440
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
$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);
10
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
83
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
85
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
$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);
17
$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);
18
5
0
$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);
20
$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);
21
$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);
22
5
8
$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);
24
5
6
$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);
26
$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);
02
$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);
28
$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);
00
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
5
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Như có thể thấy rõ từ ví dụ trên, giá trị mà Apple chuyển lên hàng đầu trong khi vẫn duy trì mối liên hệ với Patricia. Tên trái cây có thể được sắp xếp ngược lại dễ dàng bằng cách sử dụng hàm

5
82

Cả hai hàm này đều chấp nhận các cờ phân loại giống như giá trị của tham số thứ hai tùy chọn của chúng là

5
79 và
5
78

Sắp xếp các phần tử mảng theo giá trị với các hàm do người dùng xác định

Bốn chức năng sắp xếp có thể dễ dàng xử lý các nhu cầu sắp xếp thông thường của bạn với sự trợ giúp của các cờ khác nhau. Tuy nhiên, đôi khi tiêu chí của bạn để so sánh các phần tử mảng có thể khác nhau

Giả sử bạn có một mảng các từ ngẫu nhiên cần được sắp xếp theo thứ tự bảng chữ cái. Tuy nhiên, bạn cũng muốn sắp xếp chúng dựa trên độ dài của chúng trước khi sắp xếp chúng theo thứ tự bảng chữ cái. Ví dụ: sở thú sẽ đứng sau quả táo trong cách sắp xếp theo thứ tự bảng chữ cái truyền thống. Tuy nhiên, nếu bạn muốn hiển thị các từ ngắn trước các từ dài hơn, sở thú sẽ xuất hiện trước quả táo. Trong cùng một bộ chữ cái, vượn sẽ xuất hiện trước sở thú do thứ tự bảng chữ cái

Về cơ bản, đầu tiên các từ được sắp xếp dựa trên độ dài của chúng, sau đó các từ có cùng số lượng chữ cái được sắp xếp theo thứ tự bảng chữ cái trong nhóm riêng của chúng. Kiểu sắp xếp này không được tích hợp sẵn trong PHP, vì vậy chúng ta sẽ phải viết hàm sắp xếp của riêng mình

Những gì PHP làm trong trường hợp này là cung cấp cho bạn một vài hàm có thể được sử dụng để chuyển mảng mà bạn muốn sắp xếp, cùng với tên của hàm sắp xếp của riêng bạn

Bạn có thể sử dụng hàm

5
88 để sắp xếp các giá trị mảng trong mảng thông thường. Tương tự, bạn có thể sử dụng hàm
5
89 để sắp xếp các giá trị trong các mảng kết hợp đồng thời duy trì các kết hợp khóa-giá trị

Đoạn mã dưới đây cho thấy một cách để thực hiện hành vi này

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
474
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
477
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
479
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
481
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
43
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
490
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
492
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
497
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
499
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
501
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
505
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
507
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
511
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
513
$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);
17
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
$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);
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
$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);
20
$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);
22
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
520
$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);
24
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
522
$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);
26
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
481
$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);
28
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
43
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
533
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
534
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
535
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
536
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
538
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
539
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Trong các hàm gọi lại dành cho sắp xếp tùy chỉnh, chúng ta phải trả về một số nguyên nhỏ hơn 0 để chỉ ra rằng giá trị đầu tiên nhỏ hơn giá trị thứ hai. Trả về 0 nếu giá trị đầu tiên bằng giá trị thứ hai. Trả về một số nguyên lớn hơn 0 nếu giá trị đầu tiên lớn hơn thứ hai

Vì tiêu chí sắp xếp chính của chúng tôi là độ dài chuỗi, chúng tôi trực tiếp trả về -1 nếu từ đầu tiên ngắn hơn từ thứ hai. Tương tự, chúng tôi trực tiếp trả về 1 nếu từ đầu tiên dài hơn từ thứ hai. Nếu hai từ có độ dài bằng nhau, chúng ta so sánh chúng theo thứ tự bảng chữ cái bằng cách sử dụng hàm

5
90 và trả về giá trị của nó

Như bạn có thể thấy ở đầu ra, chức năng sắp xếp tùy chỉnh của chúng tôi sẽ sắp xếp lại các từ chính xác theo cách chúng tôi muốn

Sắp xếp một mảng theo khóa

Sắp xếp một mảng dựa trên các khóa của nó thường hữu ích khi bạn đang xử lý các mảng kết hợp

Chẳng hạn, bạn có thể có một mảng chứa thông tin về tổng số sân bay ở các quốc gia khác nhau. Giả sử rằng tên của các quốc gia khác nhau là khóa và số sân bay là giá trị, bạn có thể muốn sắp xếp tên quốc gia theo thứ tự bảng chữ cái. Điều này rất dễ thực hiện với các hàm

5
91 và
5
92. Cả hai hàm này sẽ duy trì liên kết khóa-giá trị của các phần tử mảng sau khi sắp xếp. Hàm ________ 391 sắp xếp các phím từ thấp đến cao và hàm ________ 392 sắp xếp các phím từ cao xuống thấp

Đây là một ví dụ sắp xếp cơ bản

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
545
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
548
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
551
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
553
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
560
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
562
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
564
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
566
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
568
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
570
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
572
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
574
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
576
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
578
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Bạn cũng có thể cung cấp cho PHP hàm tùy chỉnh của riêng mình để sắp xếp các khóa mảng bằng cách sử dụng hàm

5
95. Cũng giống như
5
88, hàm gọi lại trong
5
95 cũng yêu cầu bạn trả về một số nguyên nhỏ hơn 0 nếu khóa đầu tiên được coi là nhỏ hơn khóa thứ hai và một số nguyên lớn hơn 0 nếu khóa đầu tiên lớn hơn khóa thứ hai. Hàm này cũng duy trì liên kết khóa-giá trị của các phần tử mảng

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
545
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
497
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
499
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
501
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
505
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
507
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
511
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
513
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
503
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
614
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
551
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
553
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
564
$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);
17
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
566
$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);
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
572
$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);
20
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
576
$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);
22
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
562
$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);
24
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
568
$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);
26
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
574
$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);
28
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
560
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
570
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
578
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
534
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Trong ví dụ trên, chúng tôi đã sử dụng chức năng sắp xếp tùy chỉnh từ phần trước để sắp xếp tên của các quốc gia trước tiên theo độ dài của tên và sau đó theo thứ tự bảng chữ cái

Sắp xếp mảng đa chiều trong PHP

Nó phổ biến hơn nhiều trong cuộc sống thực để xử lý thông tin đa chiều. Chẳng hạn, các tổ chức sẽ lưu trữ điểm của tất cả học sinh trong nhiều môn học khác nhau trong một bảng duy nhất thay vì tạo các bảng mới cho từng môn học. Nếu bạn phải lưu trữ cùng một thông tin trong PHP, bạn cũng nên làm điều đó bằng cách sử dụng mảng nhiều chiều thay vì mảng riêng biệt cho từng đối tượng

Sắp xếp với các chức năng do người dùng xác định

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sắp xếp một mảng nhiều chiều bằng cách sử dụng danh sách các tòa nhà cao nhất thế giới làm ví dụ. Mảng của chúng tôi sẽ chứa thông tin về tên của tòa nhà, thành phố và quốc gia nơi tòa nhà tọa lạc, số tầng và tổng chiều cao tính bằng mét, cùng với năm xây dựng tòa nhà

Khi bạn muốn sắp xếp các giá trị trong một mảng nhiều chiều dựa trên một trường cụ thể, bạn chỉ cần sử dụng hàm

5
88. Ví dụ dưới đây sẽ giúp bạn hiểu rõ hơn về kỹ thuật này

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
654
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
656
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
658
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
660
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
662
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
664
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
666
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
669
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
671
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
676
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
679
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
681
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
683
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
45
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
690
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
692
$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);
17
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
694
$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);
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
696
$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);
20
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
698
$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);
22
$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);
04
$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);
24
$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);
26
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Trong ví dụ trên, thông tin về mỗi tòa nhà được lưu trữ trong mảng riêng của nó bên trong mảng chính

5
99. Hàm
$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);
000 chỉ cần trừ số tầng trong tòa nhà thứ hai khỏi tòa nhà thứ nhất để xác định tòa nhà nào nhỏ hơn theo tiêu chí của chúng tôi. Chúng tôi không phải lo lắng về việc trả lại một giá trị âm hoặc dương cụ thể vì tất cả các giá trị âm có nghĩa là nhỏ hơn và tất cả các giá trị dương có nghĩa là lớn hơn

Cuối cùng, chúng tôi chỉ lặp qua mảng chính và in ra thông tin về từng tòa nhà

Sắp xếp trên nhiều cột

Có một hàm tên là

$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);
001 mà bạn có thể sử dụng để sắp xếp mảng nhiều chiều của mình dựa trên giá trị của nhiều cột hoặc nhiều thứ nguyên. Bạn chỉ cần tạo một mảng các giá trị chính mà bạn muốn sử dụng để sắp xếp. Sau đó, vấn đề chỉ là chuyển các cờ phân loại

Ví dụ sau đây sẽ làm cho nó rõ ràng

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
708
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
712
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
714
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
716
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
722
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
724
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
726
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
732
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
714
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
736
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
742
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
744
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
716
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
$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);
17
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
752
$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);
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
724
$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);
20
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
756
$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);
22
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
$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);
24
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
$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);
26
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
762
$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);
28
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
764
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
766
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
718
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
710
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
772
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
534
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
774
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
536
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
766
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
538
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
778
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
539
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
666
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
781
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
782
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
783
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
784
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
785
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
786
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
787
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
788
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
789________

Chúng tôi có một mảng đa chiều lưu trữ tên, điểm số và sức khỏe của người chơi. Chúng tôi sử dụng hàm

$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);
002 để tạo hai mảng riêng biệt có tên là
$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);
003 và
$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);
004 lưu trữ điểm số và sức khỏe của người chơi

Lưu ý thứ tự các mảng được chuyển đến hàm

$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);
001. Điều này sẽ ảnh hưởng đến kết quả cuối cùng. Chúng tôi chuyển mảng ________ 2003 trước và các giá trị trong ________ 2003 sẽ được sắp xếp theo thứ tự giảm dần. Điều này sẽ đưa Amanda lên đầu vì cô ấy có số điểm cao nhất. Bây giờ, các phần tử trong mảng
$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);
004 và
$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);
009 cũng sẽ được sắp xếp lại để sức khỏe của Amanda đứng đầu trong
$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);
004 và cô ấy đứng đầu trong
$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);
009

Nói cách khác,

$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);
001 sẽ sắp xếp toàn bộ mảng
$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);
003 theo thứ tự giảm dần. Sau đó, các giá trị trong các mảng khác cũng sẽ được sắp xếp lại để phù hợp với thứ tự đó. Vì vậy, thứ tự sẽ là Amanda, Andrew, Adam, Monty, v.v.

Khi nó đã đi qua toàn bộ mảng

$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);
003, nó sẽ chuyển sang mảng
$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);
004. Bạn sẽ nhận thấy rằng cả Adam và Monty đều có cùng số điểm. Vì vậy, vị trí cuối cùng của họ sẽ được xác định bởi các giá trị sức khỏe của họ, những giá trị này phải được sắp xếp theo thứ tự tăng dần. Monty có sức khỏe thấp hơn Adam, vì vậy anh ta sẽ được xếp trước Adam. Thứ tự của người chơi bây giờ sẽ trở thành Amanda, Andrew, Monty, Adam, v.v.

Tất cả các xung đột giá trị khác được giải quyết theo cách tương tự. Đây là kết quả cuối cùng mà bạn sẽ nhận được sau khi sắp xếp mảng

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
796
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
5
0
$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);
1
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
801
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
803
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
805
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
809
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
811
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
813
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
815
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
817
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
819
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
823
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
825
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
827
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
815
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
817
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
833
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
837
$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);
17
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
839
$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);
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
841
$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);
20
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
815
$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);
22
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
817
$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);
24
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
847
$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);
26
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
$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);
28
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
851
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
839
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
402
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
827
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
404
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
815
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
405
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
817
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
534
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
861
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
536
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
538
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
865
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
539
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
867
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
781
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
869
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
782
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
815
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
784
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
817
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
786
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
875
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
787
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
807
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
7

Bây giờ điều đó có thể đã trở nên rõ ràng, nhưng tôi vẫn muốn chỉ ra rằng

$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);
001 sẽ không giúp bạn lưu nhiều lệnh gọi
5
79 cho các mảng riêng biệt. Đây là một ví dụ

usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
3
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
4
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
5
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
6
5
13
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
8
5
15
5
$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);
1
5
18
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
40
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
42
5
21
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
44
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
46
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
801
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
48
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
803
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
49
5
29
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
51
5
31
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
53
5
33
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
55
5
35
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
57
5
37
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
59
5
03
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
61
$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);
04
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
62
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
64
5
44
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
66
5
0
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
68
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
801
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
70
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
803
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
72
5
52
$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);
17
5
54
$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);
18
5
56
$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);
20
5
58
$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);
22
5
60
$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);
24
5
03
$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);
26
$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);
04
$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);
28
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
400
usort($your_data, function($a, $b)
{
return strcmp($a->name, $b->name);
});
406

Nếu ý định của bạn là sắp xếp cả hai mảng theo thứ tự tăng dần một cách độc lập, thì

$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);
001 sẽ khiến bạn thất vọng nặng nề. Đặt cược tốt nhất của bạn trong tình huống này là chỉ cần gọi riêng
5
79 trên cả hai mảng

Suy nghĩ cuối cùng

Trong hướng dẫn này, tôi đã chỉ cho bạn một số hàm khác nhau trong PHP có thể được sử dụng để sắp xếp mảng theo khóa hoặc giá trị của chúng. Chúng tôi cũng đã học cách sắp xếp một mảng theo các khóa hoặc giá trị của nó bằng cách sử dụng tiêu chí sắp xếp tùy chỉnh của riêng chúng tôi với sự trợ giúp của các hàm

5
95 và
5
89. Phần cuối cùng thảo luận về cách sắp xếp tất cả các giá trị trong một mảng nhiều chiều chỉ sử dụng một trường cụ thể

Tôi hy vọng bạn đã học được điều gì đó mới từ hướng dẫn này. Nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào, vui lòng cho tôi biết trong phần bình luận. Cách tốt nhất để tìm hiểu là thử tạo một số ví dụ của riêng bạn, sắp xếp mảng bằng cách sử dụng các hàm này

Bài đăng này đã được cập nhật với sự đóng góp từ Monty Shokeen. Monty là một nhà phát triển full-stack, người cũng thích viết hướng dẫn và tìm hiểu về các thư viện JavaScript mới

Làm cách nào để sắp xếp một mảng theo cột trong PHP?

PHP - Hàm Sắp Xếp Cho Mảng . asort() - sắp xếp các mảng kết hợp theo thứ tự tăng dần, theo giá trị. ksort() - sắp xếp các mảng kết hợp theo thứ tự tăng dần, theo khóa. arsort() - sắp xếp các mảng kết hợp theo thứ tự giảm dần, theo giá trị. rsort() - sort arrays in descending order. asort() - sort associative arrays in ascending order, according to the value. ksort() - sort associative arrays in ascending order, according to the key. arsort() - sort associative arrays in descending order, according to the value.

Làm cách nào để sắp xếp một mảng trong PHP theo khóa cụ thể?

Hàm ksort() sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo khóa . Mẹo. Sử dụng hàm krsort() để sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo khóa. Mẹo. Sử dụng hàm asort() để sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo giá trị.

Làm cách nào để sắp xếp mảng với giá trị đối tượng trong PHP?

Hàm usort() là một hàm có sẵn trong PHP, dùng để sắp xếp mảng các phần tử theo điều kiện với một hàm so sánh cho trước. 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.

Làm cách nào để sắp xếp một mảng nhiều chiều trong PHP?

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.