Php shuffle 2个唯一的数字

时间:2015-10-30 14:29:18

标签: php random range unique shuffle

我有一个包含用户和号码的数据库。

我构建了一个shuffle并试图随机给用户一个有效的数字。

现在我遇到的问题是,我想给用户2个随机数字,其中shuffle应该是唯一的。

主要代码如下:

    $numbers = range(0, $counts); // $counts are the number of users in my databse
    $numbers2 = range(0, $counts);
    shuffle($numbers);
    shuffle($numbers2);

    foreach($users as $user) {
        # Starts from 1 if higher than 52
        $uniqueRand  = (array_pop($numbers)+$currentWeek) % 52 + 1;
        $uniqueRand2 = (array_pop($numbers2)+$currentWeek) % 52 + 1;

        # tried something like this but did         
        while($uniqueRand == $uniqueRand2) {
            $numbers2 = range(0, $counts);
            shuffle($numbers2);
            $uniqueRand2 = (array_pop($numbers2)+$currentWeek) % 52+1;
        }

         ...# Storing in database
    }

这里有一个应用程序草图

Users      |       numbers
__________________________
Frank      |  14, 24
Tim        |  21, 43
Tom        |  52, 6
Hanz       |  8,  3
Benjamin   |  5,  1
West       |  7,  6
Thompson   |  4,  9
.....

第一行数字14,21,52 ...代表$ number而第二行代表$ numbers2,我想创建独特的随机值,不重复,但我如何检查$ number不要在同一行重复,并且仍然是垂直唯一的。

所以例如这样的事情是错误的:

Users      |       numbers
_________________________
Frank      |       14, 14

这样的事情也是错的:

Users      |       numbers
_________________________
Frank      |     14, 24
Tim        |     21, 14
Tom        |     14,  6
Hanz       |      8,  3
Benjamin   |      5,  14
West       |      14,  6
Thompson   |      4,  9

0 个答案:

没有答案