There are many functions that can be used to sort arrays in php. If it is a simple one-dimensional array sort, we can use the sorting function that comes with php, but for multi-dimensional arrays, we need to write it ourselves.
I have been worried since I came back, so I looked up the book and found the answer. In order to remember them, I decided to make a summary of array sorting functions.
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 by key name and retain the association between key name and data
krsort: Sort the array in reverse order by key name, retaining the association between key name and data
natsort: Sort alphanumeric strings while maintaining original key/value associations
natcasesort: Same as natsort sorting algorithm, but case-insensitive sorting
PHP array sort (sort)
Numeric index array sorting:
Function: sort(array, [sort type])
Description: The sort() function sorts the specified array (first parameter) in ascending order.
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 values as numbers;
SORT_STRING: Sort values as strings;
For example, if there are 4 and "37" in the array, if you sort by numbers, 4 is less than "37"; if you sort by strings, 4 is greater than "37";
1. One-dimensional array
Suppose there is a one-dimensional array, as follows:
$sortArr = array("name"=>"hiro", "age"=>"23", "city"=>"Shanghai", "code"=>"200051");
The original array result output by print_r() is:
Array ( [name] => hiro [age] => 23 [city] => Shanghai [code] => 200051 )
1.sort() function: sort in ascending order according to the array subscript;
The array result output by print_r() is (only the array subscript is output, not the key name):
1
Array ( [0] => 23 [1] => 200051 [2] => Shanghai [3] => hiro )
2.rsort() function: Contrary to the sort() function, sort in descending order according to the array subscript;
The array result output by print_r() is (only the array subscript is output, not the key name):
Array ( [0] => hiro [1] => Shanghai [2] => 200051 [3] => 23 )
3.asort() function: Sort in ascending order according to the key name of the array;
The array result output by print_r() is:
1
Array ( [age] => 23 [code] => 200051 [city] => Shanghai [name] => hiro )
4.arsort() function: Contrary to the asort() function, it sorts in descending order according to the key name of the array;
The array result output by print_r() is:
Array ( [name] => hiro [city] => Shanghai [code] => 200051 [age] => 23 )
5.ksort() function: Sort in ascending order according to the key value of the array;
The array result output by print_r() is:
Array ( [age] => 23 [city] => Shanghai [code] => 200051 [name] => hiro )
6.krsort() function: Contrary to the ksort() function, it sorts in descending order according to the key values of the array;
The array result output by print_r() is:
The code is as follows | Copy code | ||||
Array ( [name] => hiro [city] => Shanghai [code] => 200051 [age] => 23 ) |
The array result output by print_r() is:
代码如下 | 复制代码 |
Array ( [name] => hiro [age] => 23 [city] => Shanghai [code] => 200051 ) |
8.shuffle() function: Arrange the array order randomly (the order is different after each refresh);
The array result output by print_r() is (just one of the random arrangements):
Array ( [0] => 23 [1] => 200051 [2] => Shanghai [3] => hiro )
2. Two-dimensional array
Suppose there is a two-dimensional array as follows:
The code is as follows | Copy code | ||||||||||||
array("hiro", "23", "suzhou"), array("yoyo", "25", "shanghai"),array("janstar", "28", "xinjiang") );
1
|
代码如下 | 复制代码 |
function reverse_compare2($x, $y) { if($x[2] == $t[2]) { return 0; } elseif ($x[2] < $y[2]) { return 1; //改变后即可反向 } else { return -1; //改变后即可反向 } } usort($person, reverse_compare2); |
The code is as follows | Copy code |
<🎜>function compare0($x, $y) {<🎜> if($x[0] == $t[0]) {<🎜> Return 0;<🎜> } elseif ($x[0] < $y[0]) {<🎜> Return -1;<🎜> } else {<🎜> Return 1;<🎜> }<🎜> }<🎜> <🎜> usort($person, compare0);<🎜> echo "Sort forward by the first element:";<🎜> print_r($person); <🎜> The output results are as follows: <🎜> <🎜>1<🎜> Sort forward by the first element: Array ( [0] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [1] => Array ( [ 0] => janstar [1] => 28 [2] => xinjiang ) [2] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) ) |
The code is as follows | Copy code |
function compare2($x, $y) { if($x[2] == $t[2]) { Return 0; } elseif ($x[2] < $y[2]) {<🎜> Return -1;<🎜> } else {<🎜> Return 1;<🎜> }<🎜> }<🎜> <🎜> usort($person, compare2);<🎜> echo "Sort forward by the third element:";<🎜> print_r($person); <🎜> The output results are as follows: <🎜> <🎜><🎜> Sort forward by the third element: Array ( [0] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) [1] => Array ( [ 0] => hiro [1] => 23 [2] => suzhou ) [2] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) ) |
The code is as follows | Copy code |
function reverse_compare2($x, $y) { if($x[2] == $t[2]) { return 0; } elseif ($x[2] < $y[2]) {<🎜> Return 1; //You can reverse it after changing it<🎜> } else {<🎜> Return -1; //Reverse after changing<🎜> }<🎜> }<🎜> <🎜> usort($person, reverse_compare2);<🎜> |
echo "Sort by the third element in reverse order:";
print_r($person);
The output results are as follows:
1
Sort in reverse order by the third element:
代码如下 | 复制代码 |
Array ( [0] => Array ( [0] => janstar [1] => 28 [2] => xinjiang ) [1] => Array ( [0] => hiro [1] => 23 [2] => suzhou ) [2] => Array ( [0] => yoyo [1] => 25 [2] => shanghai ) ) |
Haha, there are too many codes, please write them down for easy reference later!
Example
The code is as follows
|
Copy code | ||||