(PHP 5 >= 5.2.0)
ArrayObject::uksort — Sort the entries by keys using a user-defined comparison function
This function sorts the keys of the entries using a user-supplied comparison function. The key to entry correlations will be maintained.
cmp_functionThe callback comparison function.
       Function cmp_function should accept two
       parameters which will be filled by pairs of entry keys.
       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.
      
No value is returned.
Example #1 ArrayObject::uksort() example
<?php
function cmp($a, $b) {
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}
$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');
foreach ($arrayObject as $key => $value) {
    echo "$key: $value\n";
}
?>
The above example will output:
an apple: 3 a banana: 4 the Earth: 2 John: 1