2015-10-19 4 views
-1

Я получил это:Php случайных чисел внутри Еогеасп

foreach($users as $user) { 

    $num = mt_rand(1, 52); 

    ... 
} 

это перебирает пользователей в моей базе данных и Randoms число между 1 и 52 для каждого пользователя.

Позже он обновляет db и записывает в случайном числе.

Возможно ли предоставить пользователю уникальный номер, чтобы один пользователь не получал тот же номер, что и другой?

+2

Сделать столбец (например user_id) 'AUTO_INCREMENT' – Daan

ответ

1

Создайте список возможных номеров и перетасуйте его; затем выделить каждый из этих чисел, в своей очереди .... как перетасовки и дела колоды карт

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

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

    ... 
} 
+0

так что $ user = $ num? – zou

+0

, кажется, работает спасибо – zou

0

Вы можете попробовать PHP uniqid функции с отметкой времени как параметр Я.

+1

«** Предупреждение: ** Эта функция ** не создает случайные или непредсказуемые строки **. Эта функция ** не должна использоваться для целей безопасности **. Используйте криптографически защищенную случайную функцию/генератор и криптографически защищенные хэш-функции для создания непредсказуемых безопасных идентификаторов ». –