Latest web development tutorials
 

PHP array_multisort() Function

< PHP Array Reference

Example

Return a sorted array in ascending order:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);
?>
Run example »

Definition and Usage

The array_multisort() function returns a sorted array. You can assign one or more arrays. The function sorts the first array, and the other arrays follow, then, if two or more values are the same, it sorts the next array, and so on.

Note: String keys will be maintained, but numeric keys will be re-indexed, starting at 0 and increase by 1.

Note: You can assign the sorting order and the sorting type parameters after each array. If not specified, each array parameter uses the default values.


Syntax

array_multisort(array1,sorting order,sorting type,array2,array3...)

Parameter Description
array1 Required. Specifies an array
sorting order Optional. Specifies the sorting order. Possible values:
  • SORT_ASC - Default. Sort in ascending order (A-Z)
  • SORT_DESC - Sort in descending order (Z-A)
sorting type Optional. Specifies the type to use, when comparing elements. Possible values:
  • SORT_REGULAR - Default. Compare elements normally (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 (can be changed using setlocale())
  • SORT_NATURAL - Compare elements as strings using "natural ordering" like natsort()
  • SORT_FLAG_CASE - Can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively
array2 Optional. Specifies an array
array3 Optional. Specifies an array

Technical Details

Return Value: Returns TRUE on success or FALSE on failure
PHP Version: 4+
Changelog: The sorting type SORT_NATURAL and SORT_FLAG_CASE were added in PHP 5.4.

The sorting type SORT_LOCALE_STRING was added in PHP 5.3.

More Examples

Example 1

Return a sorted array in ascending order:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>
Run example »

Example 2

See how it sorts when two values are the same:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>
Run example »

Example 3

Using sorting parameters:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);
?>
Run example »

Example 4

Merge two arrays and sort them as numbers, in descending order:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);
?>
Run example »

< PHP Array Reference