<?php
function unique1($a) { return array_keys(array_flip($a)); }
function unique2($a) { return array_flip(array_flip($a)); }
function unique3($a) { return array_keys(array_count_values($a)); }
$test=array();
for($run=0; $run<1000; $run++)
$test[]=rand(0,100);
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=array_keys(array_count_values($test));
$time=microtime(true)-$time;
echo 'Keys Count Values: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=unique3($test);
$time=microtime(true)-$time;
echo 'Keys Count Values in function wrapper: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=array_unique($test);
$time=microtime(true)-$time;
echo 'Array Unique: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=unique1($test);
$time=microtime(true)-$time;
echo 'Keys Flip in function wrapper: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=array_keys(array_flip($test));
$time=microtime(true)-$time;
echo 'Keys Flip: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=unique2($test);
$time=microtime(true)-$time;
echo 'Flip Flip in function wrapper: '.$time."\n";
$time=microtime(true);
for($run=0; $run<100; $run++)
$out=array_flip(array_flip($test));
$time=microtime(true)-$time;
echo 'Flip Flip: '.$time."\n";
?>