「已注销」 2018-11-01 09:58 采纳率: 0%
浏览 3003

php mt_rand()同一秒产生了相同的随机数,这是为什么?

项目的订单编号是使用如下php代码随机生成的:

 $oid = date('YmdHis',time()).mt_rand(1000,9999);

为了防止订单号重复,特意在后面加个mt_rand(1000,9999)以防止订单号重复的情况,
但是还是出现问题了
出现问题是情况是这样的:
有一个用户在同一秒下了两个定单,系统产生的订单号居然是一样的,都是201811011716153316,请问这是什么原因造成的呢?

  • 写回答

3条回答

  • X-i-n 2018-11-01 10:03
    关注

    随机数一般用时间做种子,相同时间产生相同结果的可能性很大,看一下uniqid
    http://php.net/manual/zh/function.uniqid.php

    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀