Ich muss eine Zufallszahl innerhalb eines bestimmten Bereichs generieren. Die Nummer muss für jeden neuen Monat des Jahres unterschiedlich sein, und es sollte nicht die gleiche sein (obwohl theoretisch möglich) wie die Zahl, die im Jahr zuvor für diesen bestimmten Monat generiert wurde.Zufallszahl generieren, die sich jeden Monat ändert
Ich dachte an die Verwendung der php rand($min, $max)
Funktion in Verbindung mit date("w")
, ich kämpfe mit dem Teil, wo ich verschiedene Ergebnisse für jedes Jahr bekommen muss.
Um zu zeigen, was ich meine, überprüfen Sie dies:
$numbers = range(1, 100); //our random array
echo $numbers[date("w")]; //date("w") returns number of week
Es gibt zwei Probleme hier: 1) ist es nicht wirklich zufällig ist, 2) die Nummer wird jedes Jahr das gleiche sein und 3) es nicht Reflektieren Sie die gesamte Größe des Arrays als Datum ("w") gibt eine Zahl zwischen 1 und 52 zurück.
Glauben Sie, dass dies in reinem PHP möglich ist? Oder muss ich dafür einen Cronjob machen?
Vielen Dank für jede Hilfe.
Können Sie nicht einfach die zufällig generierte Nummer speichern und jeden Monat eine neue generieren? – freedev
Ja, ich könnte das tun, aber ich frage mich, ob es einen Weg gibt, ohne es zu speichern. Vielleicht ist es ein wenig verrückt tho;) – Adrenaxus
Einfach im Prinzip: hash den Wert von 'date ('Ym')'. Das gibt Ihnen einen zufälligen Wert für alle Absichten und Zwecke, der eindeutig mit dem aktuellen Monat verknüpft ist. Hashes erzeugen normalerweise einen hexadezimalen oder binären Wert, also müssen Sie sie nur in Dezimalzahlen umwandeln. Um es innerhalb eines bestimmten Bereichs einzuschränken, wenden Sie eine Operation wie Modul an. – deceze