uasort

Sort an array with a user-defined comparison function and maintain index association

&reftitle.description; `true` `uasort` `array` `array` `callable` `callback`

Sorts `array` in place such that its keys maintain their correlation with the values 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.

¬e.sort-unstable; ¬e.reset-index;
&reftitle.parameters;

`array`

- The input array.

`callback`

- &sort.callback.description;
&reftitle.returnvalues;

&return.true.always;

&reftitle.changelog;

&Version; | &Description;
&return.type.true; &array.changelog.by-ref;

&reftitle.examples;

### Basic `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);
    print_r($array);

    // Sort and print the resulting array
    uasort($array, 'cmp');
    print_r($array);
    ?>

&example.outputs;

    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
    )

&reftitle.seealso;

- `usort`
- `uksort`
- &seealso.array.sorting;