WP_List_Util::sort()publicWP 4.7.0

Sorts the input array based on one or more orderby arguments.

Method of the class: WP_List_Util{}

No Hooks.

Return

Array. The sorted array.

Usage

$WP_List_Util = new WP_List_Util();
$WP_List_Util->sort( $orderby, $order, $preserve_keys );
$orderby(string|array)
Either the field name to order by or an array of multiple orderby fields as $orderby => $order.
Default: empty array
$order(string)
Either 'ASC' or 'DESC'. Only used if $orderby is a string.
Default: 'ASC'
$preserve_keys(true|false)
Whether to preserve keys.
Default: false

Changelog

Since 4.7.0 Introduced.

WP_List_Util::sort() code WP 6.4.3

public function sort( $orderby = array(), $order = 'ASC', $preserve_keys = false ) {
	if ( empty( $orderby ) ) {
		return $this->output;
	}

	if ( is_string( $orderby ) ) {
		$orderby = array( $orderby => $order );
	}

	foreach ( $orderby as $field => $direction ) {
		$orderby[ $field ] = 'DESC' === strtoupper( $direction ) ? 'DESC' : 'ASC';
	}

	$this->orderby = $orderby;

	if ( $preserve_keys ) {
		uasort( $this->output, array( $this, 'sort_callback' ) );
	} else {
		usort( $this->output, array( $this, 'sort_callback' ) );
	}

	$this->orderby = array();

	return $this->output;
}