PHP sắp xếp mảng theo giá trị số

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ể được 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

1

2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
4
5
sort($random_data);
6
echo "Regular Sorting  — ";

0

1

2

3

4

5

6

7

8

9
2
0
2
1
2
2
2
3

1
2
5

3
2
7

5
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6

1
3
8

3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0

5
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
3

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

1

2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
8
4
5
4
1
6
4
3

0
4
5

2

5

4

6
5
0

8
5
2

9
5
4
2
1
5
6
2
3
5
8
2
5
sort($random_data);
0
2
7
sort($random_data);
2
2
9
sort($random_data);
4
3
1
3
2
sort($random_data);
7
3
4
3
6
6
0
3
8
4
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
4
5
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2

5
6
7
6
8
5
0
echo "Regular Sorting  — ";
0
echo "Regular Sorting  — ";
1
echo "Regular Sorting  — ";
2
echo "Regular Sorting  — ";
3
echo "Regular Sorting  — ";
4
echo "Regular Sorting  — ";
5
echo "Regular Sorting  — ";
6
echo "Regular Sorting  — ";
7
echo "Regular Sorting  — ";
8
echo "Regular Sorting  — ";
9______

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

1

2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
8
4
5
4
1
6
4
3

0
4
5

2

5

4

6
5
0

8
5
2

9
5
4
2
1
5
6
2
3
5
8
2
5
sort($random_data);
0
2
7
sort($random_data);
2
2
9
sort($random_data);
4
3
1
3
2

40
3
4
3
6
6
0
3
8
4
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
4
5
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2

5
6
7
6
8
5
0
echo "Regular Sorting  — ";
0
echo "Regular Sorting  — ";
1
echo "Regular Sorting  — ";
2
5
8
echo "Regular Sorting  — ";
4
5
6
echo "Regular Sorting  — ";
6
sort($random_data);
2
echo "Regular Sorting  — ";
8
sort($random_data);
0_______

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 một cách 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ờ sắp xếp giống nhau làm 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

1

2
3

74
4
5

77
6

79

0

81

2

3

4

5

6

8
5
0

9

90
2
1

92
2
3
sort($random_data);
4
2
5
2
7

97
2
9

99
3
1
2
01
3
2
2
03
3
4
2
05
3
6
2
07
3
8
2
03
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
2
11
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
2
13
6
7
2
03
6
8

5
echo "Regular Sorting  — ";
0
echo "Regular Sorting  — ";
2
2
20
echo "Regular Sorting  — ";
4
2
22
echo "Regular Sorting  — ";
6

81

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
5
91 sắp xếp các phím từ thấp đến cao và hàm
5
92 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

1

2
3
2
45
4
5
2
48
6

0
2
51

2
2
53

4

5

6

8
5
0

9
2
60
2
1
2
62
2
3
2
64
2
5
2
66
2
7
2
68
2
9
2
70
3
1
2
72
3
2
2
74
3
4
2
76
3
6
2
78
3
8
sort($random_data);
4
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2

06

Bạn cũng có thể cung cấp cho PHP chức năng 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. 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

1

2
3
2
45
4
5

97
6

99

0
2
01

2
2
03

4
2
05

6
2
07

8
2
03

9
2
11
2
1
2
13
2
3
2
03
2
5

5
2
7
2
9
3
14
3
1
3
2
2
51
3
4
2
53
3
6

5
3
8
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
5
0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
2
64
6
7
2
66
6
8
2
72
echo "Regular Sorting  — ";
0
2
76
echo "Regular Sorting  — ";
2
2
62
echo "Regular Sorting  — ";
4
2
68
echo "Regular Sorting  — ";
6
2

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

1

2
3
3
54
4
3
56
5
3
58
6
3
60

0
3
62

2
3
64

4
3
66

6

8
3
69

9
3
71
2
1

5
2
3
2
5
3
76
2
7
2
9
3
79
3
1
3
81
3
2
3
83
3
4

5
3
6
3
8
5
0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
3
90
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
3
92
6
7
3
94
6
8
3
96
echo "Regular Sorting  — ";
0
3
98
echo "Regular Sorting  — ";
2
sort($random_data);
4
echo "Regular Sorting  — ";
4
echo "Regular Sorting  — ";
6

06

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
sort($random_data);
00 chỉ cần trừ số tầng trong tòa nhà thứ hai từ 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ả về 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à

sort($random_data);
01 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

1

2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
08
4
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
10
5
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
12
6
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
14

0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
16

2
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
18

4
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
10

6
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
22

8
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
24

9
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
26
2
1
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
18
2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
10
2
5
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
32
2
7
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
14
2
9
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
36
3
1
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
18
3
2
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
10
3
4
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
42
3
6
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
44
3
8
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
16
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
18
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
10
6
7
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
52
6
8
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
24
echo "Regular Sorting  — ";
0
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
56
echo "Regular Sorting  — ";
2________14_

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

sort($random_data);
02 để tạo hai mảng riêng biệt có tên là
sort($random_data);
03 và
sort($random_data);
04 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

sort($random_data);
01. Điều này sẽ ảnh hưởng đến kết quả cuối cùng. Chúng tôi chuyển mảng
sort($random_data);
03 trước và các giá trị trong
sort($random_data);
03 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
sort($random_data);
04 và
sort($random_data);
09 cũng sẽ được sắp xếp lại để sức khỏe của Amanda đứng đầu trong
sort($random_data);
04 và cô ấy đứng đầu trong
sort($random_data);
09

Nói cách khác,

sort($random_data);
01 sẽ sắp xếp toàn bộ mảng
sort($random_data);
03 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

sort($random_data);
03, nó sẽ chuyển sang mảng
sort($random_data);
04. 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

1

2
3
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
96
4
5
5
0
6
4
01

0
4
03

2
4
05

4
4
07

6
4
09

8
4
11

9
4
13
2
1
4
15
2
3
4
17
2
5
4
19
2
7
4
07
2
9
4
23
3
1
4
25
3
2
4
27
3
4
4
15
3
6
4
17
3
8
4
33
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
4
07
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
4
37
6
7
4
39
6
8
4
41
echo "Regular Sorting  — ";
0
4
15
echo "Regular Sorting  — ";
2
4
17________19___

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

sort($random_data);
01 sẽ không giúp bạn tiết kiệm nhiều lệnh gọi
5
79 cho các mảng riêng biệt. Đây là một ví dụ

1

2
3
5
13
4
5
15
5
6
5
18

0

2
5
21

4
5
0

6
4
01

8
4
03

9
5
29
2
1
5
31
2
3
5
33
2
5
5
35
2
7
5
37
2
9
5
03
3
1
sort($random_data);
4
3
2
3
4
5
44
3
6
5
0
3
8
4
01
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
0
4
03
$random_data = [32508, 98134, "234984", "3249832", "38", 123, "Apple"];
2
5
52
6
7
5
54
6
8
5
56
echo "Regular Sorting  — ";
0
5
58
echo "Regular Sorting  — ";
2
5
60
echo "Regular Sorting  — ";
4
5
03
echo "Regular Sorting  — ";
6________17______

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ì

sort($random_data);
01 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ảng theo số giá trị trong PHP?

Để PHP sắp xếp mảng theo khóa, bạn nên sử dụng ksort() (đối với thứ tự tăng dần) hoặc krsort() (đối với thứ tự giảm dần). Để PHP sắp xếp mảng theo giá trị, bạn sẽ cần các hàm asort() và arsort() (đối với thứ tự tăng dần và giảm dần) .

Làm cách nào để sắp xếp mảng theo giá trị khóa tăng dần trong PHP?

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 đa chiều theo giá trị trong PHP?

Bắt đầu bằng PHP 5. 3, bạn có thể sử dụng chức năng ẩn danh. usort($myArray, function($a, $b) { return $a['order'] - $b['order']; }); With PHP 7 you can use the spaceship operator: usort($myArray, function($a, $b) { return $a['order'] <=> $b['order']; });

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

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 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 arsort() để sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo giá trị.