<?php
header
('Content-Type: text/plain');

$orig = array();

for (
$i 1$i <= 1000$i++) {
    
$orig[$i]['compare'] = rand(11000);
    
$orig[$i]['value'] = 'foo';
}

// array_multisort
$start microtime(true);


for (
$i 1$i <= 1000$i++) {
    
$copy $orig;
    
$compare = array();
    foreach(
$copy as $key => $value) {
        
$compare[$key] = $value['compare'];
    }
    
array_multisort($compareSORT_ASC$copy);
}

$end microtime(true);

$am_diff $end $start;

echo 
"array_multisort:
----------------
start: $start
end: $end
diff: $am_diff"
;

// usort
$start microtime(true);

function 
cmp($a$b) {
    if (
$a['compare'] == $b['compare']) {
        return 
0;
    }
    return (
$a['compare'] < $b['compare']) ? -1;
}

for (
$i 1$i <= 1000$i++) {
    
$copy $orig;
    
usort($copy'cmp');
}

$end microtime(true);

$us_diff $end $start;

echo 
"

usort:
------
start: $start
end: $end
diff: $us_diff"
;

$overall $us_diff $am_diff;

echo
"

usort - array_multisort:
------------------------
$overall"
;