How to sort a PHP array?
In our daily PHP array development, sorting of arrays is indispensable in many projects. So there are several types of PHP arrays The sorting methods are: asort() function and ksort() function. Today I will introduce them to you one by one!
The first method: asort()
asort() function is to sort the array and maintain the index relationship
The syntax format is as follows:
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
Sort type tag:
SORT_REGULAR - normal comparison unit (does not change type)
SORT_NUMERIC - Cells are compared as numbers
SORT_STRING - Cells are compared as strings
SORT_LOCALE_STRING - Based on the current locale Set to compare cells as strings, which can be changed with setlocale() .
SORT_NATURAL - Similar to natsort(), which sorts strings in "natural order" for each unit. New in PHP 5.4.0.
SORT_FLAG_CASE - Can be combined with SORT_STRING or SORT_NATURAL (OR bit operation), case-insensitive sorting strings.
Note: sort is mostly used to sort numerical index arrays. If an associative array is put into sort to sort, the keys of the array will be lost. In addition, UTF8 Chinese cannot be sorted.
The following is a small example of the sort function. The specific code is as follows:
<?php header("Content-Type:text/html; charset=utf-8"); $arr = ['g','h','d','a','z','F','b','c','e','A','f']; print_r($arr); sort($arr); // 从 A-Z, a-z, 数字从小到大 进行排序 print_r($arr); ?>
What happens if the value is a number and the sort function is used? Please look at the following code example:
<?php header("Content-Type:text/html; charset=utf-8"); $arr2 = [8,1,2,10,3,4,5]; print_r($arr2); sort($arr2); // 如果值是数子, 从小到大,进行排序 print_r($arr2); ?>
The output result is:
From the above example, we can see that if the value of the array is a number, use The sort() function will sort from smallest to largest!
The second method is to ascend the associative array: asort() and ksort()
asort() function sorts the array and maintains the index relationship.
Since associative arrays cannot be sorted using sort, what function should be used? We recommend using asort. The usage is the same as sort, but after sorting, the keys can still be retained.
The syntax format is as follows:
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
The following is a small example of using the asort function. The code is as follows:
<?php header("Content-Type:text/html; charset=utf-8"); //$arr = array("one"=>"100","two"=>"300","400"=>"教程"); $arr['one'] = 100; $arr['two'] = 20; $arr['three'] = 3; asort($arr); // asort排序,键值会保留 print_r($arr); ?>
The output result is;
Note:
#Associative array is composed of keys and values, so what is asort? Sorted based on what?
We can prove that asort actually uses the values of the array to sort, then if we want to sort the keys, we can use ksort.The ksort() function sorts the array by key name.
The syntax format is as follows:bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
<?php header("Content-Type:text/html; charset=utf-8"); //$arr = array("one"=>"100","two"=>"300","400"=>"教程"); $arr['one'] = 100; $arr['two'] = 20; $arr['three'] = 3; ksort($arr); //使用key值对数组进行排序 print_r($arr); ?>
PHP Array Reverse order》!
【Related tutorial recommendations】1. Relevant topic recommendations: "2. Related video course recommendations: 《Array sorting by value: sort() forward and rsort() reverse sorting functions》
《Array sorting by key name: ksort() ascending order and krsort() descending order function》
The above is the detailed content of How to sort PHP array?. For more information, please follow other related articles on the PHP Chinese website!