wp_list_sort( array $input_list, string|array $orderby = array(), string $order = ‘ASC’, bool $preserve_keys = false ): array

Sorts an array of objects or arrays based on one or more orderby arguments.

Parameters

$input_listarrayrequired
An array of objects or arrays to sort.
$orderbystring|arrayoptional
Either the field name to order by or an array of multiple orderby fields as $orderby => $order.

Default:array()

$orderstringoptional
Either 'ASC' or 'DESC'. Only used if $orderby is a string. Default 'ASC'.

Default:'ASC'

$preserve_keysbooloptional
Whether to preserve keys.

Default:false

Return

array The sorted array.

Source

function wp_list_sort( $input_list, $orderby = array(), $order = 'ASC', $preserve_keys = false ) {
	if ( ! is_array( $input_list ) ) {
		return array();
	}

	$util = new WP_List_Util( $input_list );

	return $util->sort( $orderby, $order, $preserve_keys );
}

Changelog

VersionDescription
4.7.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Example of usage:

    $animals = [
    	'alligator' => [ 'name' => 'alligator', 'fly' => false, 'class' => 'reptile' ],
    	'dog'       => [ 'name' => 'dog',       'fly' => false, 'class' => 'mammal' ],
    	'cat'       => [ 'name' => 'cat',       'fly' => false, 'class' => 'mammal' ],
    	'falcon'    => [ 'name' => 'falcon',    'fly' => true,  'class' => 'bird' ],
    	'bat'       => [ 'name' => 'bat',       'fly' => true,  'class' => 'mammal' ],
    ];
    
    wp_list_sort( $animals, 'class' );
    // [
    //   0 => [ 'name' => 'falcon', ... ]
    //   1 => [ 'name' => 'cat', ... ]
    //   2 => [ 'name' => 'dog', ... ]
    //   3 => [ 'name' => 'bat', ... ]
    //   4 => [ 'name' => 'alligator', ... ]
    // ]
    
    wp_list_sort( $animals, 'name', 'DESC' );
    // [
    //   0 => [ 'name' => 'falcon', ... ]
    //   1 => [ 'name' => 'dog', ... ]
    //   2 => [ 'name' => 'cat', ... ]
    //   3 => [ 'name' => 'bat', ... ]
    //   4 => [ 'name' => 'alligator', ... ]
    // ]
    
    wp_list_sort( $animals, 'name', 'ASC', true );
    // [
    //   'alligator' => [ 'name' => 'alligator', ... ]
    //   'bat'       => [ 'name' => 'bat', ... ]
    //   'cat'       => [ 'name' => 'cat', ... ]
    //   'dog'       => [ 'name' => 'dog', ... ]
    //   'falcon'    => [ 'name' => 'falcon', ... ]
    // ]

You must log in before being able to contribute a note or feedback.