ArrayObject::uasort
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
ArrayObject::uasort — Sort the entries with a user-defined comparison function and maintain key association
Description
public ArrayObject::uasort(callable $callback): bool
This function sorts the entries such that keys maintain their correlation with the entry that they are associated with, using a user-defined comparison function.
This is used mainly when sorting associative arrays where the actual element order is significant.
Note:
If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their relative order in the sorted array was undefined.
Parameters
-
callback
-
The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
callback(mixed $a, mixed $b): int
Return Values
Always returns true
.
Examples
Example #1 ArrayObject::uasort() example
<?php // Comparison function function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } // Array to be sorted $array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4); $arrayObject = new ArrayObject($array); print_r($arrayObject); // Sort and print the resulting array $arrayObject->uasort('cmp'); print_r($arrayObject); ?>
The above example will output:
Array ( [a] => 4 [b] => 8 [c] => -1 [d] => -9 [e] => 2 [f] => 5 [g] => 3 [h] => -4 ) Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 )
See Also
- ArrayObject::asort() - Sort the entries by value
- ArrayObject::ksort() - Sort the entries by key
- ArrayObject::natsort() - Sort entries using a "natural order" algorithm
- ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
- ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function
- uasort() - Sort an array with a user-defined comparison function and maintain index association
© 1997–2021 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/arrayobject.uasort.php