Мне нужно создать случайное число в заданном диапазоне. Число должно отличаться для каждого нового месяца года, и оно не должно быть одинаковым (хотя теоретически это возможно) как число, сгенерированное годом ранее в течение данного месяца.Генерировать случайное число, которое меняется каждый месяц
Я думал об использовании функции php rand($min, $max)
в сочетании с date("w")
. Я борюсь с той частью, где мне нужно получать разные результаты за каждый год.
Для того, чтобы проиллюстрировать, что я имею в виду, проверить это:
$numbers = range(1, 100); //our random array
echo $numbers[date("w")]; //date("w") returns number of week
Есть 2 проблемы здесь: 1) это на самом деле не случайны, 2) число будет таким же, каждый год, и 3) он не отражают весь размер массива, так как дата («w») возвращает число от 1 до 52.
Как вы думаете, это возможно в чистом PHP? Или мне нужно сделать cronjob для этого?
Благодарим за помощь.
Не могли бы вы просто сохранить случайный сгенерированный номер и каждый месяц создать новый? – freedev
Да, я мог бы это сделать, но мне было интересно, есть ли способ, не сохранив его. Может быть, это немного сумасшедший tho;) – Adrenaxus
Простой в принципе: hash значение 'date ('Ym')'. Это дает вам случайное значение для всех целей и целей, которое однозначно связано с текущим месяцем. Хэши обычно генерируют шестнадцатеричное или двоичное значение, поэтому вам просто нужно преобразовать базу в десятичную. Чтобы ограничить его в определенном диапазоне, примените некоторую операцию, например, модуль. – deceze