The sorting of several array functions mentioned below has some commonality:
The 1 array is used as the parameter of the sort function, and after sorting, the array itself is changed, and the return value of the function is type bool.
2 A single-a representation of association appears in the function name, meaning that the correspondence of Key=>value remains the same during sorting by value
3 A single k in the function name denotes key, meaning that it is ordered by the value of the array key instead of the value of the array during sorting by values
4 The representation of single r appears in the function name reverse, meaning, in the reverse order of not adding r
5 a single U representation appears in the function name user-defined, meaning, sort using user-defined function, if the logic of the function is parameter 1 <参数2返回负数,则按照升序排列(p1小2返负升)。
--------------------Sort function Ascending order--------------------------------
Copy CodeThe code is as follows:
BOOL Sort (array & $array [, int $sort _flags= sort_regular])
$fruits = Array ("Lemon", "orange", "banana", "apple");
Sort ($fruits);
Var_dump ($fruits);
?>
Results:
Array
0 =
String
' Apple ' (length=5)
1 =
String
' Banana ' (length=6)
2 =
String
' Lemon ' (length=5)
3 =
String
' Orange ' (length=6)
--------------------Rsort in descending order--------------------
Copy CodeThe code is as follows:
$fruits = Array ("Lemon", "orange", "banana", "apple");
Rsort ($fruits);
Var_dump ($fruits);
?>
Results:
Array
0 =
String
' Orange ' (length=6)
1 =
String
' Lemon ' (length=5)
2 =
String
' Banana ' (length=6)
3 =
String
' Apple ' (length=5)
---------------Asort is arranged in ascending order of two-dimensional array values (maintains Key=>value association)-----------
Copy CodeThe code is as follows:
$fruits = Array ("d" = "lemon", "a" and "Orange", "b" = "banana", "c" = "apple");
Asort ($fruits);
Var_dump ($fruits);
?>
Results:
Array
' C ' =
String
' Apple ' (length=5)
' B ' + =
String
' Banana ' (length=6)
' d ' =
String
' Lemon ' (length=5)
' A ' + =
String
' Orange ' (length=6)
---------Arsort in descending order of two-dimensional array values (maintains Key=>value association)---------
Copy CodeThe code is as follows:
$fruits = Array ("d" = "lemon", "a" and "Orange", "b" = "banana", "c" = "apple");
Arsort ($fruits);
Var_dump ($fruits);
?>
Results
Array
' A ' + =
String
' Orange ' (length=6)
' d ' =
String
' Lemon ' (length=5)
' B ' + =
String
' Banana ' (length=6)
' C ' =
String
' Apple ' (length=5)
--------------------Ksort in ascending order of the array's key--------------
Copy CodeThe code is as follows:
$fruits = Array ("d" = "lemon", "a" and "Orange", "b" = "banana", "c" = "apple");
Ksort ($fruits);
Var_dump ($fruits);
?>
Results
Array
' A ' + =
String
' Orange ' (length=6)
' B ' + =
String
' Banana ' (length=6)
' C ' =
String
' Apple ' (length=5)
' d ' =
String
' Lemon ' (length=5)
---------------------Krsort in descending order of the array key-----------------------
Copy CodeThe code is as follows:
$fruits = Array ("d" = "lemon", "a" and "Orange", "b" = "banana", "c" = "apple");
Krsort ($fruits);
Var_dump ($fruits);
?>
Array
' d ' =
String
' Lemon ' (length=5)
' C ' =
String
' Apple ' (length=5)
' B ' + =
String
' Banana ' (length=6)
' A ' + =
String
' Orange ' (length=6)
----------------Usort functions are sorted by user-defined functions----------------
Copy CodeThe code is as follows:
function cmp ($a, $b)
{
if ($a = = $b) {
return 0;
}
Return ($a < $b)? -1:1;
}
$a = Array (3, 2, 5, 6, 1);
Usort ($a, "CMP");
Var_dump ($a);
?>
Results:
Array
0 =
Int
1
1 =
Int
2
2 =
Int
3
3 =
Int
5
4 =
Int
6
-----------------uksort Use a custom function to sort by the key of the array-----------------
Copy CodeThe code is as follows:
function cmp ($a, $b)
{
$a = preg_replace (' @^ (a|an|the) @ ', ' ', $a);
$b = Preg_replace (' @^ (a|an|the) @ ', ' ', $b);
Return strcasecmp ($a, $b);
}
$a = Array ("John" = 1, "the Earth" = 2, "an apple" = 3, "A Banana" and "4");
Uksort ($a, "CMP");
Var_dump ($a);
?>
Results:
Array
' an apple ' =
Int
3
' A banana ' =
Int
4
' The Earth ' =
Int
2
' John ' =
Int
1
--------------Uasort the array with a custom function to sort by value, keeping the index relationship constant---------
Copy CodeThe code is as follows:
Comparison function
function cmp ($a, $b) {
if ($a = = $b) {
return 0;
}
Return ($a < $b)? -1:1;
}
Array to be sorted
$array = Array (' a ' = = 4, ' b ' = = 8, ' c ' = = 1, ' d ' =-9, ' e ' = 2, ' f ' = = 5, ' g ' = 3, ' h ' = = 4);
Var_dump ($array);
Sort and print the resulting array
Uasort ($array, ' CMP ');
Var_dump ($array);
?>
Results:
Array
' A ' + =
Int
4
' B ' + =
Int
8
' C ' =
Int
-1
' d ' =
Int
-9
' E ' =
Int
2
' F ' + =
Int
5
' g ' + =
Int
3
' H ' =
Int
-4
Array
' d ' =
Int
-9
' H ' =
Int
-4
' C ' =
Int
-1
' E ' =
Int
2
' g ' + =
Int
3
' A ' + =
Int
4
' F ' + =
Int
5
' B ' + =
Int
8
-------------------Array_multisort to sort multiple arrays or multidimensional arrays---------
Copy CodeThe code is as follows:
$ar = Array (
Array ("Ten", one, one, one, "a"),
Array (1, 2, "2", 3, 1)
);
Array_multisort ($ar [0], SORT_ASC, sort_string,
$ar [1], sort_numeric, SORT_DESC);
Var_dump ($ar);
?>
Results:
Array
0 =
Array
0 =
String
' Ten ' (length=2)
1 =
Int
100
2 =
Int
100
3 =
Int
11
4 =
String
' A ' (length=1)
1 =
Array
0 =
Int
1
1 =
Int
3
2 =
String
' 2 ' (length=1)
3 =
Int
2
4 =
Int
1
Description
1 in the above example: $ar array precedence follows the string value of $ar[0] in ascending order, if the string value is equal, and then in descending order of the numeric value of the $ar[1] array.
2 The parameter of any position of the Array_multisort function if it is an array, indicating the value to use when sorting,
If there are multiple array parameters, prioritize the array values in front of them, if they are constants, for example
SORT_ASC, Sort_desc, Sort_regular,sort_numeric, sort_string.
Represents the Sort method (the array takes precedence before the value).
==========================================================================================
php Two-dimensional array sorting function
A PHP one-dimensional array can be sorted with functions such as sort (), Asort (), Arsort (), but the ordering of PHP's two-dimensional arrays needs to be customized.
The following function is to sort a given two-dimensional array according to the specified key value, and first look at the function definition:
Copy CodeThe code is as follows:
function Array_sort ($arr, $keys, $type = ' asc ') {
$keysvalue = $new _array = Array ();
foreach ($arr as $k = = $v) {
$keysvalue [$k] = $v [$keys];
}
if ($type = = ' asc ') {
Asort ($keysvalue);
}else{
Arsort ($keysvalue);
}
Reset ($keysvalue);
foreach ($keysvalue as $k = = $v) {
$new _array[$k] = $arr [$k];
}
return $new _array;
}
It can sort the two-dimensional arrays by the specified key values, or you can specify ascending or descending sorting (the default is ascending), and the usage example:
Copy CodeThe code is as follows:
$array = Array (
Array (' name ' = ' phone ', ' brand ' = ' Nokia ', ' Price ' =>1050),
Array (' name ' = ' laptop ', ' brand ' = ' Lenovo ', ' Price ' =>4300),
Array (' name ' = ' razor ', ' brand ' = ' Philips ', ' Price ' =>3100),
Array (' name ' = = ' treadmill ', ' brand ' = ' three and ' pine stone ', ' price ' =>4900),
Array (' name ' = ' watch ', ' brand ' = ' casio ', ' Price ' =>960),
Array (' name ' = ' + ' LCD tv ', ' Brand ' = ' sony ', ' Price ' =>6299),
Array (' name ' = ' laser printer ', ' brand ' = ' hp ', ' Price ' =>1200)
);
$ShoppingList = Array_sort ($array, ' price ');
Print_r ($ShoppingList);
Above is the $array of this two-dimensional array according to ' Price ' from low to high sort.
Output result: (slightly).
http://www.bkjia.com/PHPjc/327874.html www.bkjia.com true http://www.bkjia.com/PHPjc/327874.html techarticle The sorting of several array functions mentioned below has some commonality: The 1 array is used as the parameter of the sort function, and after sorting, the array itself is changed, and the return value of the function is type bool. ...