У меня есть база данных с пользователями и номерами.
Я построил случайную выборку и попытался случайным образом дать пользователю число, и это сработало.
Теперь у меня проблема, что я хочу дать пользователю 2 случайных числа с перемешиванием, которые должны быть уникальными.
Основной код выглядит так:
$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... обозначает $numbers, а вторая строка — $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