As for PHP 7.1.12, this is the comparison between array_keys(array_flip()), array_flip(array_flip()), for each elimination and array_unique. The array_keys(array_flip()) is the fastest method to remove duplication values from a single dimension array:
<?php
$max = 1000000;
$arr = range(1,$max,3);
$arr2 = range(1,$max,2);
$arr = array_merge($arr,$arr2);
$time = -microtime(true);
$res1 = array_unique($arr);
$time += microtime(true);
echo "<br>deduped to ".count($res1)." in ".$time;
$time = -microtime(true);
$res2 = array_flip(array_flip($arr));
$time += microtime(true);
echo "<br><br>deduped to ".count($res2)." in ".$time;
$time = -microtime(true);
$res3 = array();
foreach($arr as $key=>$val) {
$res3[$val] = true;
}
$res3 = array_keys($res3);
$time += microtime(true);
echo "<br /><br>deduped to ".count($res3)." in ".$time;
$time = -microtime(true);
$res4 = array_keys(array_flip($arr));
$time += microtime(true);
echo "<br /><br>deduped to ".count($res4)." in ".$time;