Sort extends LookupRefValidations
Table of Contents
- ORDER_ASCENDING = 1
- ORDER_DESCENDING = -1
- sort() : mixed
- SORT The SORT function returns a sorted array of the elements in an array.
- sortBy() : mixed
- SORTBY The SORTBY function sorts the contents of a range or array based on the values in a corresponding range or array.
- validateInt() : int
- validatePositiveInt() : int
- applyPHP7Patch() : array<string|int, mixed>
- Hack to handle PHP 7: From PHP 8.0.0, If two members compare as equal in a sort, they retain their original order; but prior to PHP 8.0.0, their relative order in the sorted array was undefined.
- buildVectorForSort() : array<string|int, mixed>
- enumerateArrayKeys() : array<string|int, mixed>
- executeVectorSortQuery() : array<string|int, mixed>
- prepareSortVectorValues() : array<string|int, mixed>
- processSortBy() : array<string|int, mixed>
- sortByColumn() : array<string|int, mixed>
- sortByRow() : array<string|int, mixed>
- sortLookupArrayFromVector() : array<string|int, mixed>
- validateArrayArgumentsForSort() : void
- validateScalarArgumentsForSort() : void
- validateSortOrder() : int
- validateSortVector() : array<string|int, mixed>
Constants
ORDER_ASCENDING
public
mixed
ORDER_ASCENDING
= 1
ORDER_DESCENDING
public
mixed
ORDER_DESCENDING
= -1
Methods
sort()
SORT The SORT function returns a sorted array of the elements in an array.
public
static sort(mixed $sortArray[, mixed $sortIndex = 1 ][, mixed $sortOrder = self::ORDER_ASCENDING ][, mixed $byColumn = false ]) : mixed
The returned array is the same shape as the provided array argument. Both $sortIndex and $sortOrder can be arrays, to provide multi-level sorting.
Parameters
- $sortArray : mixed
-
The range of cells being sorted
- $sortIndex : mixed = 1
-
The column or row number within the sortArray to sort on
- $sortOrder : mixed = self::ORDER_ASCENDING
-
Flag indicating whether to sort ascending or descending Ascending = 1 (self::ORDER_ASCENDING) Descending = -1 (self::ORDER_DESCENDING)
- $byColumn : mixed = false
-
Whether the sort should be determined by row (the default) or by column
Return values
mixed —The sorted values from the sort range
sortBy()
SORTBY The SORTBY function sorts the contents of a range or array based on the values in a corresponding range or array.
public
static sortBy(mixed $sortArray, mixed ...$args) : mixed
The returned array is the same shape as the provided array argument. Both $sortIndex and $sortOrder can be arrays, to provide multi-level sorting.
Parameters
- $sortArray : mixed
-
The range of cells being sorted
- $args : mixed
-
At least one additional argument must be provided, The vector or range to sort on After that, arguments are passed as pairs: sort order: ascending or descending Ascending = 1 (self::ORDER_ASCENDING) Descending = -1 (self::ORDER_DESCENDING) additional arrays or ranges for multi-level sorting
Return values
mixed —The sorted values from the sort range
validateInt()
public
static validateInt(mixed $value) : int
Parameters
- $value : mixed
Return values
int —validatePositiveInt()
public
static validatePositiveInt(mixed $value[, bool $allowZero = true ]) : int
Parameters
- $value : mixed
- $allowZero : bool = true
Return values
int —applyPHP7Patch()
Hack to handle PHP 7: From PHP 8.0.0, If two members compare as equal in a sort, they retain their original order; but prior to PHP 8.0.0, their relative order in the sorted array was undefined.
private
static applyPHP7Patch(array<string|int, mixed> $sortArray, array<string|int, mixed> $sortArguments) : array<string|int, mixed>
MS Excel replicates the PHP 8.0.0 behaviour, retaining the original order of matching elements. To replicate that behaviour with PHP 7, we add an extra sort based on the row index.
Parameters
- $sortArray : array<string|int, mixed>
- $sortArguments : array<string|int, mixed>
Return values
array<string|int, mixed> —buildVectorForSort()
private
static buildVectorForSort(array<string|int, mixed> $sortArray, array<string|int, int> $sortIndex, array<string|int, int> $sortOrder) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
- $sortIndex : array<string|int, int>
- $sortOrder : array<string|int, int>
Return values
array<string|int, mixed> —enumerateArrayKeys()
private
static enumerateArrayKeys(array<string|int, mixed> $sortArray) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
Return values
array<string|int, mixed> —executeVectorSortQuery()
private
static executeVectorSortQuery(array<string|int, mixed> $sortData, array<string|int, mixed> $sortArguments) : array<string|int, mixed>
Parameters
- $sortData : array<string|int, mixed>
- $sortArguments : array<string|int, mixed>
Return values
array<string|int, mixed> —prepareSortVectorValues()
private
static prepareSortVectorValues(array<string|int, mixed> $sortVector) : array<string|int, mixed>
Parameters
- $sortVector : array<string|int, mixed>
Return values
array<string|int, mixed> —processSortBy()
private
static processSortBy(array<string|int, mixed> $sortArray, array<string|int, array<string|int, mixed>> $sortIndex, array<string|int, int> $sortOrder) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
- $sortIndex : array<string|int, array<string|int, mixed>>
- $sortOrder : array<string|int, int>
Return values
array<string|int, mixed> —sortByColumn()
private
static sortByColumn(array<string|int, mixed> $sortArray, array<string|int, int> $sortIndex, array<string|int, int> $sortOrder) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
- $sortIndex : array<string|int, int>
- $sortOrder : array<string|int, int>
Return values
array<string|int, mixed> —sortByRow()
private
static sortByRow(array<string|int, mixed> $sortArray, array<string|int, int> $sortIndex, array<string|int, int> $sortOrder) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
- $sortIndex : array<string|int, int>
- $sortOrder : array<string|int, int>
Return values
array<string|int, mixed> —sortLookupArrayFromVector()
private
static sortLookupArrayFromVector(array<string|int, mixed> $sortArray, array<string|int, mixed> $sortVector) : array<string|int, mixed>
Parameters
- $sortArray : array<string|int, mixed>
- $sortVector : array<string|int, mixed>
Return values
array<string|int, mixed> —validateArrayArgumentsForSort()
private
static validateArrayArgumentsForSort(array<string|int, mixed> &$sortIndex, mixed &$sortOrder, int $sortArraySize) : void
Parameters
- $sortIndex : array<string|int, mixed>
- $sortOrder : mixed
- $sortArraySize : int
Return values
void —validateScalarArgumentsForSort()
private
static validateScalarArgumentsForSort(mixed &$sortIndex, mixed &$sortOrder, int $sortArraySize) : void
Parameters
- $sortIndex : mixed
- $sortOrder : mixed
- $sortArraySize : int
Return values
void —validateSortOrder()
private
static validateSortOrder(mixed $sortOrder) : int
Parameters
- $sortOrder : mixed
Return values
int —validateSortVector()
private
static validateSortVector(mixed $sortVector, int $sortArraySize) : array<string|int, mixed>
Parameters
- $sortVector : mixed
- $sortArraySize : int