Sắp xếp mảng php theo trường
Show
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) Hoặc phiên bản ngắn hơn sử dụng bao đóng usort($your_data, function($a, $b) Tham khảo. http. //php. net/thủ công/vi/chức năng. sử dụng. php 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 Tên TuổiDupont72Albert11Durand56Michel52Dupont36Plutot27Sắp xếp theo tên tăng dầnChú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 568 để 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
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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 7usort($your_data, function($a, $b) 85 0 1 2usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 41usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 43usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 47usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 50usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 52usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 41usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 43usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 60usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 63usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 65usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 41usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 43usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 73Trong 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 578. Nó chấp nhận tất cả các tham số giống như 579 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ợpCá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 579 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 78usort($your_data, function($a, $b) 85 usort($your_data, function($a, $b) 81 1usort($your_data, function($a, $b) 83usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 85usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 4650 usort($your_data, function($a, $b) 4852 usort($your_data, function($a, $b) 4954 usort($your_data, function($a, $b) 5156 usort($your_data, function($a, $b) 5358 usort($your_data, function($a, $b) 55 00usort($your_data, function($a, $b) 57 02usort($your_data, function($a, $b) 59 04usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 62 07usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 66 10usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 83usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 85usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 45 17 1850 20 21 22 23 24 25 26 27 28 29usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 401usort($your_data, function($a, $b) 402 04usort($your_data, function($a, $b) 404usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 406Như 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à 581 và 582. Đoạn mã sau sắp xếp cùng một mảng 583 nhưng sử dụng 581 để làm như vậy usort($your_data, function($a, $b) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 78usort($your_data, function($a, $b) 85 usort($your_data, function($a, $b) 81 1usort($your_data, function($a, $b) 83usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 85usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 4650 usort($your_data, function($a, $b) 4852 usort($your_data, function($a, $b) 4954 usort($your_data, function($a, $b) 5156 usort($your_data, function($a, $b) 5358 usort($your_data, function($a, $b) 55 00usort($your_data, function($a, $b) 57 02usort($your_data, function($a, $b) 59 04usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 440usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 66 10usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 83usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 85usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 45 17 1850 20 21 2258 2456 26 02 28 00usort($your_data, function($a, $b) 40054 usort($your_data, function($a, $b) 402 04usort($your_data, function($a, $b) 404usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 406Như 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 582 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à 579 và 578 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 địnhBố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 588 để 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 589 để 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 474usort($your_data, function($a, $b) 85 usort($your_data, function($a, $b) 477 1usort($your_data, function($a, $b) 479usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 481usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 43usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 4850 usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 490usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 492usort($your_data, function($a, $b) 53 04usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 497usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 499usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 501usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 503usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 505usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 507usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 503usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 511usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 513 17usort($your_data, function($a, $b) 503 18usort($your_data, function($a, $b) 45 20 22usort($your_data, function($a, $b) 520 24usort($your_data, function($a, $b) 522 26usort($your_data, function($a, $b) 481 28usort($your_data, function($a, $b) 43usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 402usort($your_data, function($a, $b) 40450 usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 533usort($your_data, function($a, $b) 534usort($your_data, function($a, $b) 535usort($your_data, function($a, $b) 536 04usort($your_data, function($a, $b) 538usort($your_data, function($a, $b) 539usort($your_data, function($a, $b) 406Trong 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 590 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óaSắ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 591 và 592. 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 545usort($your_data, function($a, $b) 85 usort($your_data, function($a, $b) 548 1usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 551usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 553usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 4850 usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 560usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 562usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 564usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 566usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 568usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 570usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 572usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 574usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 576usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 578usort($your_data, function($a, $b) 68 04usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 406Bạ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 595. Cũng giống như 588, hàm gọi lại trong 595 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 545usort($your_data, function($a, $b) 85 usort($your_data, function($a, $b) 497 1usort($your_data, function($a, $b) 499usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 501usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 503usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 505usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 507usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 503usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 511usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 513usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 503usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 614usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 551usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 553usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 7050 usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 564 17usort($your_data, function($a, $b) 566 18usort($your_data, function($a, $b) 572 20usort($your_data, function($a, $b) 576 22usort($your_data, function($a, $b) 562 24usort($your_data, function($a, $b) 568 26usort($your_data, function($a, $b) 574 28usort($your_data, function($a, $b) 560usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 570usort($your_data, function($a, $b) 402usort($your_data, function($a, $b) 578usort($your_data, function($a, $b) 404 04usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 534usort($your_data, function($a, $b) 406Trong 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 PHPNó 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 địnhTrong 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 588. 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 654usort($your_data, function($a, $b) 8usort($your_data, function($a, $b) 6565 usort($your_data, function($a, $b) 658 1usort($your_data, function($a, $b) 660usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 662usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 664usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 666usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 669usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 671usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 676usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 679usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 681usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 683usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 45usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 6850 usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 690usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 692 17usort($your_data, function($a, $b) 694 18usort($your_data, function($a, $b) 696 20usort($your_data, function($a, $b) 698 22 04 24 26usort($your_data, function($a, $b) 406Trong 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 599. Hàm 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ơnCuố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ộtCó một hàm tên là 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ạiVí dụ sau đây sẽ làm cho nó rõ ràng usort($your_data, function($a, $b) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 708usort($your_data, function($a, $b) 8usort($your_data, function($a, $b) 7105 usort($your_data, function($a, $b) 712 1usort($your_data, function($a, $b) 714usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 716usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 718usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 710usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 722usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 724usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 726usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 718usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 710usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 732usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 714usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 736usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 718usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 710usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 742usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 744usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 716usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 718usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 710 17usort($your_data, function($a, $b) 752 18usort($your_data, function($a, $b) 724 20usort($your_data, function($a, $b) 756 22usort($your_data, function($a, $b) 718 24usort($your_data, function($a, $b) 710 26usort($your_data, function($a, $b) 762 28usort($your_data, function($a, $b) 764usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 766usort($your_data, function($a, $b) 402usort($your_data, function($a, $b) 718usort($your_data, function($a, $b) 404usort($your_data, function($a, $b) 710usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 772usort($your_data, function($a, $b) 534usort($your_data, function($a, $b) 774usort($your_data, function($a, $b) 536usort($your_data, function($a, $b) 766usort($your_data, function($a, $b) 538usort($your_data, function($a, $b) 778usort($your_data, function($a, $b) 539usort($your_data, function($a, $b) 666usort($your_data, function($a, $b) 781usort($your_data, function($a, $b) 782usort($your_data, function($a, $b) 783usort($your_data, function($a, $b) 784usort($your_data, function($a, $b) 785usort($your_data, function($a, $b) 786usort($your_data, function($a, $b) 787usort($your_data, function($a, $b) 788usort($your_data, function($a, $b) 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 002 để tạo hai mảng riêng biệt có tên là 003 và 004 lưu trữ điểm số và sức khỏe của người chơiLưu ý thứ tự các mảng được chuyển đến hàm 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 004 và 009 cũng sẽ được sắp xếp lại để sức khỏe của Amanda đứng đầu trong 004 và cô ấy đứng đầu trong 009Nói cách khác, 001 sẽ sắp xếp toàn bộ mảng 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 003, nó sẽ chuyển sang mảng 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) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6usort($your_data, function($a, $b) 796usort($your_data, function($a, $b) 85 50 1usort($your_data, function($a, $b) 801usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 803usort($your_data, function($a, $b) 42usort($your_data, function($a, $b) 805usort($your_data, function($a, $b) 44usort($your_data, function($a, $b) 807usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 809usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 811usort($your_data, function($a, $b) 49usort($your_data, function($a, $b) 813usort($your_data, function($a, $b) 51usort($your_data, function($a, $b) 815usort($your_data, function($a, $b) 53usort($your_data, function($a, $b) 817usort($your_data, function($a, $b) 55usort($your_data, function($a, $b) 819usort($your_data, function($a, $b) 57usort($your_data, function($a, $b) 807usort($your_data, function($a, $b) 59usort($your_data, function($a, $b) 823usort($your_data, function($a, $b) 61usort($your_data, function($a, $b) 825usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 827usort($your_data, function($a, $b) 64usort($your_data, function($a, $b) 815usort($your_data, function($a, $b) 66usort($your_data, function($a, $b) 817usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 833usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 807usort($your_data, function($a, $b) 72usort($your_data, function($a, $b) 837 17usort($your_data, function($a, $b) 839 18usort($your_data, function($a, $b) 841 20usort($your_data, function($a, $b) 815 22usort($your_data, function($a, $b) 817 24usort($your_data, function($a, $b) 847 26usort($your_data, function($a, $b) 807 28usort($your_data, function($a, $b) 851usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 839usort($your_data, function($a, $b) 402usort($your_data, function($a, $b) 827usort($your_data, function($a, $b) 404usort($your_data, function($a, $b) 815usort($your_data, function($a, $b) 405usort($your_data, function($a, $b) 817usort($your_data, function($a, $b) 534usort($your_data, function($a, $b) 861usort($your_data, function($a, $b) 536usort($your_data, function($a, $b) 807usort($your_data, function($a, $b) 538usort($your_data, function($a, $b) 865usort($your_data, function($a, $b) 539usort($your_data, function($a, $b) 867usort($your_data, function($a, $b) 781usort($your_data, function($a, $b) 869usort($your_data, function($a, $b) 782usort($your_data, function($a, $b) 815usort($your_data, function($a, $b) 784usort($your_data, function($a, $b) 817usort($your_data, function($a, $b) 786usort($your_data, function($a, $b) 875usort($your_data, function($a, $b) 787usort($your_data, function($a, $b) 807usort($your_data, function($a, $b) 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 001 sẽ không giúp bạn lưu nhiều lệnh gọi 579 cho các mảng riêng biệt. Đây là một ví dụ usort($your_data, function($a, $b) 3usort($your_data, function($a, $b) 4usort($your_data, function($a, $b) 5usort($your_data, function($a, $b) 6513 usort($your_data, function($a, $b) 8515 5 1518 usort($your_data, function($a, $b) 40usort($your_data, function($a, $b) 42521 usort($your_data, function($a, $b) 4450 usort($your_data, function($a, $b) 46usort($your_data, function($a, $b) 801usort($your_data, function($a, $b) 48usort($your_data, function($a, $b) 803usort($your_data, function($a, $b) 49529 usort($your_data, function($a, $b) 51531 usort($your_data, function($a, $b) 53533 usort($your_data, function($a, $b) 55535 usort($your_data, function($a, $b) 57537 usort($your_data, function($a, $b) 59503 usort($your_data, function($a, $b) 61 04usort($your_data, function($a, $b) 62usort($your_data, function($a, $b) 64544 usort($your_data, function($a, $b) 6650 usort($your_data, function($a, $b) 68usort($your_data, function($a, $b) 801usort($your_data, function($a, $b) 70usort($your_data, function($a, $b) 803usort($your_data, function($a, $b) 72552 17554 18556 20558 22560 24503 26 04 28usort($your_data, function($a, $b) 400usort($your_data, function($a, $b) 406Nế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ì 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 579 trên cả hai mảng Suy nghĩ cuối cùngTrong 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 595 và 589. 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. |