请看下面实例:

<?php
$a = array();
for($i=0; $i<16*16*16*2; $i++){
    $a[$i] = uniqid();
}
$b = array_count_values($a);
$c = array_keys($b, 2);
if($c){
    echo \'<pre>\';
    print_r($c);
}
echo \'<pre>\';
print_r(array_count_values($a));
exit;
?>

大家可以把代码复制到本网站的php代码在线调试工具上运行一把,基本每次都有重复。

那么该如何解决高并发情况下uniqid()函数会生成重复的唯一ID呢?

我们可以在uniqid后又加了rand(1, 10000),在1000并发,每进程10次uniqid的情况下,再没有产生重复。

收藏 打印