我有一个包含用户和号码的数据库。
我构建了一个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