Home  >  Article  >  Backend Development  >  Summary of PHP array sorting methods

Summary of PHP array sorting methods

小云云
小云云Original
2017-11-14 10:29:582302browse

Nowadays, PHP has become a popular language in the world. We have briefly introduced the definition and use of some PHP arrays. But we need to learn more about the related operations of PHP arrays. The first thing I came into contact with was the problem of PHP array sorting and descending order.
sort: This function assigns new key names to the cells in the array. This will delete the original keys rather than just reorder them.
rsort: This function sorts the array in reverse order (highest to lowest). Delete the original key names instead of just reordering them.
asort: Sort the array and maintain the index relationship
arsort: Sort the array in reverse and maintain the index relationship
ksort: Sort the array according to the key name, retaining the association between the key name and the data
krsort : Sort the array in reverse order by key name, retaining the association between key names and data
natsort: Sort alphanumeric strings and maintain the original key/value association
natcasesort: Same as natsort sorting algorithm, but not different Uppercase and lowercase letter sorting
PHP array sorting (sort)
Number index array sorting:
Function: sort(array, [sort type])
Description: The sort() function sorts the specified array in ascending order ( first parameter) to sort.
The second parameter of the sort function is used to specify the sorting type and is an optional parameter. The possible values ​​are:
SORT_REGULAR: Default value, sort without changing the type;
SORT_NUMERIC: Sort the values ​​as numbers;
SORT_STRING: Sort the values ​​as strings;
If there are 4 and "37" in the array, sort by numbers, 4 is less than "37"; sort by string, 4 is greater than "37";

The code is as follows:

<?php 
$a = array(4,"37",3,100,0,-5); 
sort($a); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
sort($a,SORT_STRING); 
for ($i=0; $i<6; ++$i){ 
echo $a[$i]." "; 
} 
echo "<br />"; 
?>

Output results:

-5 0 3 4 37 100
-5 0 100 3 37 4
Descending sort: rsort( array, [sort type])
Parameter usage is the same as the sort function.

Associative array sorting:
Function: asort(array, [sort type])
Description: Sort in ascending order according to the element values ​​of the associative array. Parameter usage is as shown in the sort function above.

Function: ksort(array, [sort type])
Description: Sort in ascending order according to the keywords of the associative array. Parameter usage is as shown in the sort function above.

The code is as follows:

<?php 
$a = array( 
"good" => "bad", 
"right" => "wrong", 
"boy" => "girl"); 
echo "value sort<br />"; 
asort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
echo "<br />key sort<br />"; 
ksort($a); 
foreach($a as $key => $value){ 
echo "$key : $value<br />"; 
} 
?>

Output result:
value sort
good : bad
boy : girl
right : wrong

key sort
boy : girl
good : bad
right : wrong
Descending sort:
arsort(array, [sort type]) Corresponds to asort
krsort(array, [ sort type]) Corresponds to ksort

The function range() that quickly creates an array

For example, the range() function can quickly create an array of numbers from 1 to 9:

The code is as follows:

<?php 
$numbers=range(1,9); 
echo $numbers[1]; 
?>

Of course, using range(9,1) creates a number array from 9 to 1. At the same time, range() can also create a character array from a to z:

The code is as follows:

<?php 
$numbers=range(a,z); 
foreach ($numbers as $mychrs) 
echo $mychrs." "; 
?>

Pay attention to the case when using character arrays, such as range(A,z) It is different from range(a,Z). The range() function also has a third parameter, which is used to set the step size. For example, the array elements created by range(1,9,3) are: 1, 4, 7. Common PHP array sorting Generally, each element in the array is represented by characters or numbers, so the array elements can be arranged in ascending order. This function is sort(). For example:

The code is as follows:

<?php 
$people=array(&#39;name&#39;,&#39;sex&#39;,&#39;nation&#39;,&#39;birth&#39;); 
foreach ($people as $mychrs) 
echo $mychrs." "; 
sort($people); 
echo "<br />---排序后---<br />"; 
foreach ($people as $mychrs) 
echo $mychrs." "; 
?>

The array elements sorted in ascending order are displayed as birth name nation sex. Of course, the sort() function is case-sensitive (letters start from the uppermost) The order to the smallest is: A...Z...a...z) The

Sort() function also has a second parameter, which is used to indicate whether the PHP array sorting rule in ascending order is used to compare numbers or strings. For example:

The code is as follows:

<?php 
echo "---按数字升序排序---<br />"; 
$num2=array(&#39;26&#39;,&#39;3&#39;,); 
sort($num2,SORT_NUMERIC); 
foreach ($num2 as $mychrs) 
echo $mychrs." "; 
echo "<br />---按字符升序排序---<br />"; 
$num3=array(&#39;26&#39;,&#39;3&#39;); 
sort($num3,SORT_STRING); 
foreach ($num3 as $mychrs) 
echo $mychrs." "; 
?>

SORT_NUMERIC and SORT_STRING are used to declare ascending order of numbers or characters. If arranged in ascending order of numbers, it is: 3, 26; but if arranged in ascending order of characters, it is: 26, 3. In addition to the ascending function in PHP, there is also a descending or reverse sorting function, which is the rsort() function. For example: $num1=range(1,9); rsort($num1); here is actually equivalent to range(9 ,1).

After reading this article, I believe that everyone will have a clearer idea about PHP array sorting, and have mastered a variety of different array sorting methods. You should apply what you have learned.

Related recommendations:

Definition of php array

The most complete introduction to PHP array

A summary of how to use PHP arrays

The above is the detailed content of Summary of PHP array sorting methods. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:What is a namespaceNext article:What is a namespace