The array_multisort() is an inbuilt function in PHP which is used to sort multiple arrays at once or a multi-dimensional array with each individual dimension.
With this function, one should remember that string keys will be maintained, but numeric keys will be re-indexed, starting at 0 and increases by 1.
Syntax:
bool array_multisort($array1, sorting_order, sorting_type, $array2..)
Parameters: The array generally takes one parameter that is the array which needs to be sorted. But in addition, the function can take two more optional parameters sorting_order and sorting_type.
- $array1: This parameter specifies the array which we want to sort.
- sorting_order: This parameter specifies the order to use i.e. in ascending or descending order. The default value of this parameter is SORT_ASC. That is, sorting in ascending order. In order to sort in descending order we will have to set this parameter to SORT_DESC.
- sorting_type: This parameter specifies the sort options for the arrays and they are as follows:
- SORT_REGULAR: Compare elements regularly(Standard ASCII).
- SORT_NUMERIC: Compare elements as numeric-values.
- SORT_STRING: Compare elements as string values.
- SORT_LOCALE_STRING: Compare elements as string, based on the current locale.
- SORT_NATURAL: Compare elements as strings using “natural ordering”.
- SORT_FLAG_CASE: Can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively.
If we want to sort multiple arrays, we can pass them as parameters like $array2, $array3… followed by their sorting_order, sorting_type.
Return value: The array_multisort() function returns a boolean value. That is it will return TRUE on success and FALSE on failure.
Note:If two members on comparing become equal, their relative order in sorted array is undefined.
Below programs illustrate the array_multisort() function:
Program 1:
<?php
$animals = array ( "Dog" , "Cat" , "Horse" ,
"Bear" , "Zebra" , "Lion" );
array_multisort ( $animals );
print_r( $animals );
?>
|
Output:
Array
(
[0] => Bear
[1] => Cat
[2] => Dog
[3] => Horse
[4] => Lion
[5] => Zebra
)
Program 2:
<?php
$array1 = array ( "Dog" , "Cat" );
$array2 = array ( "Fido" , "Missy" );
array_multisort ( $array1 , $array2 );
print_r( $array1 );
print_r( $array2 );
?>
|
Output:
Array
(
[0] => Cat
[1] => Dog
)
Array
(
[0] => Missy
[1] => Fido
)
Program 3:
<?php
$array1 = array ( "Dog" , "Dog" , "Cat" );
$array2 = array ( "Pluto" , "Fido" , "Missy" );
array_multisort ( $array1 , SORT_ASC, $array2 , SORT_DESC);
print_r( $array1 );
print_r( $array2 );
?>
|
Output:
Array
(
[0] => Cat
[1] => Dog
[2] => Dog
)
Array
(
[0] => Missy
[1] => Pluto
[2] => Fido
)
Reference:
http://php.net/manual/en/function.array-multisort.php