ArrayObject::uasort

Sort the entries with a user-defined comparison function and maintain key association

&reftitle.description; public `true` `ArrayObject::uasort` `callable` `callback`

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.

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

`callback`

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

&return.true.always;

&reftitle.changelog;

&Version; | &Description;
&return.type.true;

&reftitle.examples;

### `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);
    var_dump($arrayObject);

    // Sort and print the resulting array
    $arrayObject->uasort('cmp');
    var_dump($arrayObject);
    ?>

&example.outputs;

    object(ArrayObject)#1 (1) {
      ["storage":"ArrayObject":private]=>
      array(8) {
        ["a"]=>
        int(4)
        ["b"]=>
        int(8)
        ["c"]=>
        int(-1)
        ["d"]=>
        int(-9)
        ["e"]=>
        int(2)
        ["f"]=>
        int(5)
        ["g"]=>
        int(3)
        ["h"]=>
        int(-4)
      }
    }
    object(ArrayObject)#1 (1) {
      ["storage":"ArrayObject":private]=>
      array(8) {
        ["d"]=>
        int(-9)
        ["h"]=>
        int(-4)
        ["c"]=>
        int(-1)
        ["e"]=>
        int(2)
        ["g"]=>
        int(3)
        ["a"]=>
        int(4)
        ["f"]=>
        int(5)
        ["b"]=>
        int(8)
      }
    }

&reftitle.seealso;

- `ArrayObject::asort`
- `ArrayObject::ksort`
- `ArrayObject::natsort`
- `ArrayObject::natcasesort`
- `ArrayObject::uksort`
- `uasort`