Nút sắp xếp php

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

Việc sắp xếp thực hiện rất nhiều nhiệm vụ, yêu cầu truy xuất hoặc lấy một tập dữ liệu cụ thể rất dễ dàng và hiệu quả. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng các hàm PHP sẵn có để 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ó trong PHP rất dễ dàng. Bạn có thể chọn duy trì hoặc loại bỏ các liên kết khóa-giá trị [khóa - giá trị] và bạn cũng có thể xác định chức năng riêng của mình để xác định cách sắp xếp các phần tử. Tôi sẽ chỉ cho bạn làm sao trong phần hướng dẫn này

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

7 để 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ử sắp xếp thay thế vì sắp xếp lại đơn giản. Tham số tùy chọn thứ hai cho phép bạn sắp xếp các thành phần. Tham số này có thể có sáu giá trị khác nhau

  1. 8 - tham số này sẽ sắp xếp các giá trị mà không thay đổi kiểu của chúng
  2. SORT_NUMERIC - tham số này sẽ sắp xếp các giá trị bằng cách so sánh chúng bằng số lượng
  3. 9 - tham số này sẽ sắp xếp các giá trị bằng cách so sánh chúng theo dạng chuỗi [string]
  4. 0 - tham số này sẽ so sánh các giá trị dưới dạng chuỗi dựa trên miền địa phương hiện tại. Bạn có thể tự cập nhật miền địa phương bằng cách sử dụng 
    1
  5. 2 - tham số này sẽ sắp xếp các phần tử bằng cách sử dụng "sắp xếp tự nhiên" trong khi so sánh chúng dưới dạng chuỗi
  6. 3 hoặc 
    2 để 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 vài ví dụ sắp xếp để giúp bạn nhanh chóng nắm bắt sự khác biệt giữa tất cả các cờ sắp xếp

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

Sắp xếp một mảng liên kết

Liên kết giữa khóa và giá trị trở nên quan trọng khi bạn đang xử lý các mảng liên kết. Xem xét ví dụ sau đây, trong đó một mảng liên kết đượ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 các loại cây trái, thì việc sử dụng hàm

6 từ phần trước sẽ dẫn đến việc mất các khóa liên quan

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 các loại trái cây yêu thích của họ, chúng tôi còn mất đi tên của những người khác nhau. Mỗi giá trị sắp xếp chỉ được xác định là một số mới dựa trên vị trí của nó trong mảng 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 duy trì liên kết từ khóa - giá trị trong khi sắp xếp các mảng theo giá trị của chúng. This function is

8 and 
9. Đoạn mã sau sắp xếp mảng tương tự 
20 nhưng sử dụng 
8

2

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

9

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ố tùy chọn thứ hai của chúng là

6 và 
5

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 định nghĩa

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 phổ biến của bạn với sự trợ giúp của các cờ khác nhau. Tuy nhiên, hãy ghép đôi khi tiêu chí của bạn để so sánh các yếu tố mảng có thể khác nhau

Cho đến lúc bạn có một loạt các từ ngẫu nhiên cần được sắp xếp theo thứ tự abc. Tuy nhiên, bạn cũng muốn sắp xếp chúng dựa trên chiều 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ẽ nằm sau quả táo trong cách sắp xếp theo thứ tự chữ cái truyền thống. Tuy nhiên, nếu muốn hiển thị các từ rút ngắn trước các từ dài hơn, zoo sẽ xuất hiện trước apple. Trong cùng một tập hợp các chữ cái, ape sẽ nằm trước vườn thú theo thứ tự chữ cái

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

Điều mà PHP làm trong trường hợp này là cung cấp cho bạn một số hàm có thể được sử dụng để truyền vào 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

25 để sắp xếp các giá trị mảng trong các mảng thông thường. Tương tự, bạn có thể sử dụng hàm 
26 để sắp xếp các giá trị trong các mảng liên kết trong khi vẫn duy trì các liên kết từ khóa - giá trị

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

0

Trong các hàm gọi lại được sử dụng để sắp xếp tùy chỉnh, chúng ta phải trả về một số nguyên nhỏ hơn 0 để xem giá trị đầu tiên nhỏ hơn giá trị thứ hai. Trả về 0 nếu giá trị ban đầu 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 giá trị thứ hai

Vì tiêu chí sắp xếp chính của chúng tôi là độ dài của chuỗi, nên chúng tôi trực tiếp trả về -1 nếu từ đầu tiên rút 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

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

Như bạn có thể thấy trong kết quả, sắp xếp các tùy chọn sắp xếp của chúng tôi 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 [key]

Sắp xếp một mảng dựa trên các từ khóa của nó thường hữu ích khi bạn đang xử lý các mảng liên kết. Chẳng hạn, bạn có thể có một mảng với 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à từ khóa và số lượng sân bay là giá trị, bạn có thể muốn sắp xếp tên các 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

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

Dưới đây là một ví dụ sắp xếp cơ bản

6

You can't don't need to build the function of your own to sorting the keys of array by

02. Giống như hàm 
25, hàm gọi lại trong 
02 cũng yêu cầu bạn trả về số nguyên nhỏ hơn 0 nếu khóa thứ nhất nhỏ hơn khóa thứ hai và số nguyên lớn hơn 0 nếu khóa thứ nhất 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ử trong mảng

0

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

Sắp xếp các mảng nhiều chiều trong PHP

Việc đảm bảo nhận những thông tin đa chiều rõ ràng rất phổ biến trong đời thường. Trong trường hợp không may, các tổ chức sẽ lưu trữ điểm của tất cả học sinh của nhiều môn học trong một bảng thay vì tạo các bảng mới cho mỗi môn học. Nếu bạn phải lưu trữ thông tin tương tự trong PHP, bạn cũng muốn thực hiện điều đó bằng cách sử dụng một mảng đa chiều thay vì mảng riêng cho từng đối tượng

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ụ. Nhiều người 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 nó có địa điểm, số tầng và tổng tính cao bằng cùng một số năm mà nó được xây dựng

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

25. Ví dụ dưới đây sẽ giúp bạn hiểu kỹ thuật này tốt hơn

2

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

06. Hàm 
07 chỉ cần trừ số tầng trong tòa nhà thứ hai ra 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 cần phải lắng nghe về việc trả lại một giá trị âm hoặc công cụ dương có thể bởi 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à đưa ra thông tin về từng nhà

Tổng kết

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 các mảng theo khóa hoặc giá trị của chúng. Chúng tôi cũng đã biết 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ác tiêu chí sắp xếp tùy chọn của riêng chúng tôi với sự trợ giúp của các chức năng

08 và 
26. Phần cuối 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ỉ bằng một trường cụ thể

Chủ Đề