Sắp xếp mảng theo khóa cụ thể trong php

Tiếp theo, hàm ksort sắp xếp các phần tử theo thứ tự tăng dần trong khi vẫn để ý đến các phím. Lưu ý rằng bạn sẽ nhận được giá trị đúng mỗi khi bạn thực hiện cùng một chức năng

Vì vậy, nếu bạn đang nghĩ về việc sắp xếp các mảng theo khóa, thì không chọn gì ngoài hàm PHP ksort

– Mô tả kiểu sắp xếp trong PHP ksort

PHP cung cấp nhiều kiểu sắp xếp quyết định cách so sánh các khóa. Tuy nhiên, nếu bạn không vượt qua bất kỳ sort_type nào, kiểu sắp xếp “SORT_REGULAR” sẽ được sử dụng theo mặc định

Đây là "loại sắp xếp" hoặc "cờ" hợp lệ có thể được sử dụng

  • SORT_REGULAR. Nó so sánh các phần tử của mảng mà không thay đổi kiểu dữ liệu của cùng một mảng
  • SORT_NUMERIC. Nó so sánh các mục mảng đã cho bằng số
  • SORT_STRING. Nó chuyển đổi các phần tử mảng đã cho thành các chuỗi trước khi so sánh chúng
  • SORT_LOCALE_STRING. Nó so sánh các mục mảng sau khi chuyển đổi giống nhau thành các chuỗi dựa trên ngôn ngữ hiện tại
  • SORT_NATURAL. Nó cho phép so sánh các mục mảng một cách tự nhiên tương tự như cách con người sẽ thực hiện so sánh
  • SORT_FLAG_CASE. Cờ đã nêu được sử dụng với cờ SORT_NATURAL hoặc SORT_STRING được phân tách bằng toán tử OR theo bit “. ” để so sánh các mục mảng không phân biệt chữ hoa chữ thường

Ví dụ mã hóa PHP ksort

Phần này đề cập đến các ví dụ viết mã liên quan đến hàm ksort(). Thật vậy, bạn có thể sử dụng hàm đã cho để sắp xếp cả mảng được lập chỉ mục và mảng kết hợp. Tuy nhiên, đừng quên rằng việc sắp xếp sẽ được thực hiện phân biệt chữ hoa chữ thường cho đến khi bạn chuyển SORT_FLAG_CASE với các cờ đối tác ưa thích của nó làm đối số thứ ba

– PHP sắp xếp với mảng được lập chỉ mục

Ví dụ. bạn có một mảng tên động vật với chỉ số. Bây giờ, bạn muốn lập chỉ mục lại mảng “động vật” theo thứ tự tăng dần theo các khóa. Vì vậy, ở đây bạn sẽ sử dụng ksort trong PHP để lấy mảng ưa thích của mình

Đoạn mã sau đây cho biết cách thực thi ksort trong PHP để sắp xếp mảng “động vật” theo khóa theo thứ tự tăng dần


// tạo mảng động vật
$animals = mảng(
3 => “Hươu”,
6 => “Bò”,
4 => “Mèo”,
2 => “Gấu”,
0 => “Chuột túi”
);
// sử dụng hàm ksort
ksort($animals);
// in mảng động vật được sắp xếp theo khóa
print_r($animals);
// đầu ra. Mảng ( [0] => Kangaroo [2] => Gấu [3] => Hươu [4] => Mèo [6] => Bò )
?>

– Sử dụng PHP ksort để sắp xếp một mảng kết hợp

Giả sử có một mảng kết hợp gồm các dấu chứa tên chủ thể làm khóa và các dấu tương ứng làm giá trị. Bây giờ, bạn muốn sắp xếp lại mảng đánh dấu sao cho tên chủ đề được sắp xếp theo thứ tự bảng chữ cái. Vì vậy, ở đây bạn sẽ sử dụng hàm ksort để sắp xếp lại mảng đánh dấu theo thứ tự tăng dần dựa trên các khóa được đặt tên

Vui lòng xem qua đoạn mã mô tả ví dụ trên để PHP sắp xếp mảng kết hợp theo khóa


// tạo một mảng các nhãn hiệu với các khóa được đặt tên
$marks = mảng(
“Tiếng Anh” => 79,
“Hóa học” => 90,
“Vật lý” => 78,
“Toán học” => 88,
);
// sử dụng hàm ksort
ksort($marks);
// in mảng đánh dấu được sắp xếp theo khóa
print_r($marks);
// đầu ra. Mảng ( [Hóa học] => 90 [Tiếng Anh] => 79 [Toán học] => 88 [Vật lý] => 78 )
?>

Thứ tự mảng PHP theo khóa theo thứ tự giảm dần

Bạn có muốn PHP sắp xếp mảng theo khóa theo thứ tự giảm dần không? . “Krsort (). ” Chắc chắn, hàm krsort() xử lý các mảng giống như hàm ksort() ngoại trừ các thứ tự sắp xếp khác nhau

Do đó, các mảng có chỉ số sẽ có các khóa được sắp xếp theo thứ tự giảm dần. Và các mảng có khóa được đặt tên sẽ sắp xếp lại các khóa theo thứ tự bảng chữ cái đảo ngược

– Khối mã để sắp xếp các chỉ số theo thứ tự giảm dần

Hãy tưởng tượng bạn đã tạo một chương trình cho một cửa hàng hoa và khách hàng thường đặt hàng các loại hoa khác nhau. Vì vậy, bạn đã thêm tất cả các bông hoa được yêu cầu vào một mảng kết hợp trong khi thêm số lượng cần thiết của các bông hoa giống như các phím. Bây giờ, bạn muốn xem những bông hoa có nhu cầu cao nhất ở đầu mảng

Do đó, bạn sẽ sử dụng hàm krsort() để sắp xếp mảng hoa theo khóa theo thứ tự giảm dần như khối mã được chia sẻ bên dưới


// tạo mảng hoa
$hoa = mảng(
1000 => “Cúc”,
1500 => “Hướng dương”,
3000 => “Hoa hồng”,
1200 => “Hoa tulip”,
2500 => “Hoa sen”
);
// sử dụng hàm krsort
krsort($hoa);
// in mảng hoa được sắp xếp theo khóa
print_r($hoa);
// đầu ra. Mảng ( [3000] => Hoa hồng [2500] => Hoa sen [1500] => Hoa hướng dương [1200] => Hoa tulip [1000] => Hoa cúc)
?>

– Khối mã để sắp xếp các khóa được đặt tên theo thứ tự giảm dần

Ví dụ. bạn có một mảng sách với tên tác giả là khóa và tên sách là giá trị. Bây giờ, bạn muốn sắp xếp mảng đã cho theo khóa theo thứ tự bảng chữ cái đảo ngược. Ở đây, đoạn mã dưới đây sẽ giúp bạn sắp xếp các khóa “tên tác giả” theo thứ tự bảng chữ cái đảo ngược bằng cách sử dụng hàm krsort()


//tạo mảng sách
$books = mảng(
“Jon Stokes” => “Bên trong cỗ máy”,
“Steve McConnell” => “Hoàn tất mã”,
“Jon Bentley” => “Ngọc trai lập trình”,
“Max Kanat-Alexander” => “Mã đơn giản”,
“Robert C. Martin” => “Mã sạch”
);
// sử dụng hàm krsort
krsort($sách);
// in mảng sách được sắp xếp theo khóa
print_r($books);
// đầu ra. Mảng ( [Steve McConnell] => Hoàn thành mã [Robert C. Martin] => Mã sạch [Max Kanat-Alexander] => Mã đơn giản [Jon Stokes] => Bên trong máy [Jon Bentley] => Ngọc trai lập trình )?>

Sắp xếp mảng đa chiều theo khóa cụ thể

Có phải bạn vừa gặp phải yêu cầu sắp xếp mảng theo khóa cụ thể không? . Hàm array_multisort() có thể giúp ích rất nhiều trong việc sắp xếp một mảng nhiều chiều chứa các mảng kết hợp có cùng khóa và sắp xếp nhiều mảng riêng lẻ cùng một lúc.

Đây là quy trình hai bước

  1. Tạo một mảng riêng để lưu trữ tất cả các giá trị của khóa được yêu cầu
  2. Sử dụng hàm array_multisort() để sắp xếp mảng mới tạo dựa trên mảng ban đầu bằng cách chuyển cả hai mảng đã cho về cùng một mảng

– Sử dụng array_multisort() để sắp xếp mảng theo khóa cụ thể

Hàm array_multisort() chấp nhận một mảng, một thứ tự sắp xếp tùy chọn, một kiểu sắp xếp tùy chọn và một hoặc nhiều mảng tùy chọn. Cú pháp trông như thế này. mảng_multisort(mảng, thứ tự sắp xếp, kiểu_sắp xếp, mảng…) . Theo cú pháp đã nêu, sorting_order được đặt thành SORT_ASC theo mặc định, nhưng bạn cũng có thể thay đổi nó thành SORT_DESC.

Ngoài ra, sorting_type có thể được đặt thành bất kỳ kiểu sắp xếp nào được đề cập ở trên cùng với hàm PHP ksort. Xin lưu ý rằng SORT_REGULAR cũng là kiểu sắp xếp mặc định trong hàm array_multisort()

– Đoạn mã để sắp xếp mảng theo khóa cụ thể

Ví dụ, bạn có một mảng đa chiều các sinh viên. Hiện tại, mảng được sắp xếp theo id sinh viên nhưng bây giờ, bạn muốn sắp xếp mảng đã cho theo thứ hạng của sinh viên. Do đó, bạn sẽ làm theo hai bước được đề cập ở trên để sắp xếp mảng theo cấp bậc theo thứ tự tăng dần tương tự như khối mã này


// tạo mảng sinh viên
$std = mảng(
mảng(“ID sinh viên” => “101HI”, “xếp hạng” => 4),
mảng(“ID sinh viên” => “102BK”, “xếp hạng” => 1),
mảng(“ID sinh viên” => “103LK”, “xếp hạng” => 5),
mảng(“ID sinh viên” => “104NN”, “xếp hạng” => 3),
mảng(“ID sinh viên” => “105SD”, “xếp hạng” => 2)
);
// tạo một mảng xếp hạng trống
$xếp hạng = mảng();
// điền vào mảng xếp hạng với các giá trị "xếp hạng" từ mảng std
foreach ($std dưới dạng $key => $value)
{
$ranks[$key] = $value[“rank”];
}
// sử dụng hàm array_multisort
array_multisort($ranks, $std);
// in mảng tiêu chuẩn được sắp xếp theo thứ hạng
print_r($std);
?>

Mời các bạn xem mảng đa chiều đã sắp xếp bên dưới

Mảng (
[0] => Mảng ( [studentID] => 102BK [rank] => 1 )
[1] => Mảng ( [studentID] => 105SD [rank] => 2 )
[2] => Mảng ( [studentID] => 104NN [rank] => 3 )
[3] => Mảng ( [studentID] => 101HI [rank] => 4 )
[4] => Mảng ( [studentID] => 103LK [rank] => 5 )
)

kết thúc

Biên dịch cuộc thảo luận ở trên, các hàm PHP ksort, krsort() và array_multisort() cung cấp rất nhiều trợ giúp trong việc sắp xếp các mảng theo khóa. Vì vậy, có thể là thứ tự tăng dần hoặc giảm dần, mảng đơn giản hay mảng nhiều chiều, bạn đã học cách xử lý các tác vụ sắp xếp mảng dựa trên các phím. Ngoài ra, liệt kê dưới đây là những điểm mà bạn không bao giờ được quên để PHP sắp xếp mảng theo khóa một cách hiệu quả

  • Bạn có thể sử dụng hàm PHP ksort để sắp xếp một mảng theo khóa theo thứ tự tăng dần
  • Bạn có thể sử dụng hàm krsort để sắp xếp mảng PHP theo khóa theo thứ tự giảm dần
  • Các hàm PHP ksort và krsort hoạt động tốt với cả chỉ mục số và khóa được đặt tên
  • Hàm array_multisort cho phép sắp xếp một mảng nhiều chiều theo một khóa cụ thể theo bất kỳ thứ tự nào

Sắp xếp mảng theo khóa cụ thể trong php
Vì vậy, bây giờ bạn có thể sắp xếp bất kỳ loại mảng nào theo khóa mà không cần vắt óc vì bạn đã có danh sách ý tưởng phù hợp ở trên

5/5 - (14 phiếu bầu)

Sắp xếp mảng theo khóa cụ thể trong php

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

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 các giá trị mảng trong PHP?

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

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

Cách sắp xếp mảng nhiều chiều theo giá trị khóa trong PHP .
Sử dụng hàm PHP array_column() để lấy các giá trị từ một cột khóa cụ thể trong mảng
Sử dụng hàm PHP array_multisort() để sắp xếp một mảng theo giá trị khóa

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

$order_by = 'tên'; . Nó có sẵn kể từ PHP 5. 3. Lưu câu trả lời này. This is based on the Closure class, which allows anonymous functions. It is available since PHP 5.3. Save this answer.