【问题标题】:Php random numbers inside foreachforeach中的php随机数
【发布时间】:2015-10-19 08:15:40
【问题描述】:

我知道了:

foreach($users as $user) {

    $num = mt_rand(1, 52);

    ...
}

这会遍历我数据库中的用户,并为每个用户随机一个 1 到 52 之间的数字。

稍后它会更新数据库并写入随机数。

是否可以给一个用户一个唯一的号码,这样一个用户就不会得到与另一个用户相同的号码?

【问题讨论】:

  • 制作一列(例如user_id)AUTO_INCREMENT

标签: php sql database random


【解决方案1】:

生成一个可能的数字列表并随机播放;然后依次分配每个数字......就像洗牌和发一副牌

$numbers = range(1,52);
shuffle($numbers);

foreach($users as $user) {
    $num = array_pop($numbers);

    ...
}

【讨论】:

    【解决方案2】:

    你可以试试PHP uniqid函数,以时间戳为参数。

    【讨论】:

    • "警告:此函数不会创建随机或不可预测的字符串。此函数不得用于安全目的. 使用密码安全的随机函数/生成器和密码安全的散列函数来创建不可预测的安全 ID。”
    猜你喜欢
    • 1970-01-01
    • 2016-01-11
    • 2012-11-02
    • 2012-07-11
    • 1970-01-01
    • 2017-02-10
    • 2011-03-09
    相关资源
    最近更新 更多