Bạn được cung cấp một chuỗi các chuỗi. Bạn phải sắp xếp mảng đã cho theo cách tiêu chuẩn [trường hợp bảng chữ cái quan trọng] cũng như cách tự nhiên [trường hợp bảng chữ cái không quan trọng]
Input : arr[] = {"Geeks", "for", "geeks"} Output : Standard sorting: Geeks for geeks Natural sorting: for Geeks geeks Input : arr[] = {"Code", "at", "geeks", "Practice"} Output : Standard sorting: Code Practice at geeks Natural sorting: at Code geeks Practice
Khuyến khích. Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp
Nếu bạn đang cố gắng sắp xếp mảng chuỗi theo cách đơn giản, bạn có thể đơn giản tạo một hàm so sánh để so sánh ký tự và sắp xếp mảng chuỗi đã cho. Nhưng điều đó sẽ phân biệt chữ thường và chữ hoa. Để giải quyết vấn đề này nếu bạn chọn giải quyết vấn đề này trong c/java, bạn phải viết hàm so sánh của riêng mình, đặc biệt xử lý các trường hợp của bảng chữ cái. Nhưng nếu chúng tôi chọn PHP làm ngôn ngữ của mình thì chúng tôi có thể sắp xếp nó trực tiếp với sự trợ giúp của natcasesort[]. natcasesort[]. Nó sắp xếp các chuỗi bất kể trường hợp của chúng. Có nghĩa là 'a' & 'A' được xử lý nhỏ hơn 'b' & 'B' trong phương pháp sắp xếp này
PHP có nhiều hàm dựng sẵn để sắp xếp các phần tử mảng theo nhiều cách khác nhau, chẳng hạn như theo thứ tự bảng chữ cái hoặc số theo thứ tự tăng dần hoặc giảm dần. Các hàm sắp xếp mảng PHP được sử dụng phổ biến nhất là
sort[]
- sắp xếp mảng theo thứ tự tăng dầnrsort[]
- sắp xếp mảng theo thứ tự giảm dầnasort[]
- 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óaarsort[]
- sắp xếp các mảng kết hợp theo thứ tự giảm dần, theo giá trịkrsort[]
- sắp xếp các mảng kết hợp theo thứ tự giảm dần, theo khóa
Hàm sắp xếp[]
Ví dụ sau sắp xếp các phần tử của mảng theo thứ tự tăng dần
$countries = array["USA", "Germany", "UK", "Australia"]; sort[$countries]; print_r[$countries];
$myNum = array[141, 26, 324, 142, 251]; sort[$myNum]; print_r[$myNum];
Hàm rsort[]
Ví dụ sau sắp xếp các phần tử của mảng $cars
theo thứ tự giảm dần
$countries = array["USA", "Germany", "UK", "Australia"]; rsort[$countries]; print_r[$countries];
$myNum = array[141, 26, 324, 142, 251]; rsort[$myNum]; print_r[$myNum];
Hàm asort[]
Hàm asort[]
sắp xếp các phần tử của mảng kết hợp theo thứ tự tăng dần theo giá trị. Ví dụ sau sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo giá trị
rsort[]
0
Hàm arsort[]
Hàm arsort[]
sắp xếp các phần tử của một mảng kết hợp theo thứ tự giảm dần theo giá trị. Ví dụ sau sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo giá trị
rsort[]
2
Hàm ksort[]
Hàm ksort[]
sắp xếp các phần tử của một mảng kết hợp theo thứ tự tăng dần theo khóa. Ví dụ sau sắp xếp một mảng kết hợp theo thứ tự tăng dần, theo khóa
rsort[]
4
Hàm krsort[]
Hàm krsort[]
sắp xếp các phần tử của một mảng kết hợp theo thứ tự giảm dần theo khóa. Ví dụ sau sắp xếp một mảng kết hợp theo thứ tự giảm dần, theo khóa
rsort[]
6
Bài tập
Tạo một mảng có tên $cars
với các giá trị sau. ["Volvo", "Volkswagen", "Toyota", "Ford"]. Sắp xếp mảng theo thứ tự tăng dần và in các giá trị bằng vòng lặp rsort[]
8
Các hàm PHP sort[]
và rsort[]
có thể được sử dụng để sắp xếp các mảng số hoặc được lập chỉ mục. Các phần sau đây sẽ cho bạn thấy cơ bản các chức năng này hoạt động như thế nào
Sắp xếp mảng số theo thứ tự tăng dần
Bạn có thể sử dụng hàm sort[]
để sắp xếp các phần tử hoặc giá trị mảng số theo thứ tự bảng chữ cái hoặc số theo thứ tự tăng dần. Hãy thử một ví dụ để xem nó hoạt động như thế nào
";
// Sorting the array of numbers
sort[$numbers];
print_r[$numbers];
?>
Sắp xếp mảng số theo thứ tự giảm dần
Bạn có thể sử dụng hàm rsort[]
để sắp xếp các phần tử hoặc giá trị mảng số theo thứ tự bảng chữ cái hoặc số theo thứ tự giảm dần. Hãy xem một ví dụ
To sort an array of multiple text fields alphabetically you have to make the text lowercase before sorting the array. Otherwise PHP puts acronyms before words. You can see this in my example code. Simply store the original text field at the end of the array line and call it later from there. You can safely ignore the lowercase version which is added to the start of the array line.
echo '
ORIGINAL DATA:
';$data = array[
'Saturn|7|8|9|0||',
'Hello|0|1|2|3||',
'SFX|5|3|2|4||',
'HP|9|0|5|6||'
];
print_r[$data];
sort[$data];
reset[$data];
echo '
RAW SORT:
';
print_r[$data];
for [$c = 0; $c < count[$data]; $c++] {
list [$letter,$g1,$g2,$g3,$g4,$end] = explode ['|', $data[$c]];
$lowercase = strtolower[$letter];
$data2[$c] = array[$lowercase,$g1,$g2,$g3,$g4,$letter];
}
sort[$data2];
reset[$data2];
echo '
LOWERCASE SORT:
';
print_r[$data2];
echo '
';
?>