note 55923 deleted from function.array-unique by cmb

From: Date: Sun, 27 Oct 2019 08:47:32 +0000
Subject: note 55923 deleted from function.array-unique by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-212809@lists.php.net to get a copy of this message
Note Submitter: muddmonkey@harveyMcoldotedu ---- If you're doing numeric arrays etc. I found flip-flip to work much better than array_unique: <?PHP function microtime_float(){ //timing list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } //make an arry and fill it up $final=array(); for($i=0;$i<50000;$i++){ $final[]=$i%13; //make sure there are some dupes } //try array unique $start1 = microtime_float(); array_unique($final); $stop1=microtime_float(); echo($stop1-$start1.'<br>'); //try my flip-flip $start2=microtime_float(); array_flip(array_flip($final)); $stop2=microtime_float(); echo($stop2-$start2); ?> Running this with only ints in the array (as above) I get runtimes such as: 1.6195669174194 (using unique) 0.017037868499756 (using flip flip) which is two orders of magnitude faster! Appending a string: ($final[]='test'.$i%13;) gives: 0.42909598350525 (using unique) 0.023258924484253 (using flip-flip) Which is not AS great, but still 20x faster than unique. In both cases the flip-flip seems to use less memory than the unique. Granted the flip-flip doesn't work for all cases, but if you're doing simple stuff like this, the flip-flip will give you better run times. ~JF

« previous php.notes (#212809) next »