einfacher rand () Frage
Frage
Ich brauche eine zufällige 4-stellige Zahl
Im jetzt mit rand (1000,9999), die gibt mir immer eine 4-stellige Zahl, aber ich eliminiert 0.000-0.999 wie möglich Ergebnisse.
Wie Sie Pad eine Zufallszahl?
(auch dies wird schließlich in einen String hinzugefügt werden, muss ich den int als String werfen?)
Dank
Lösung
In Skriptsprachen wie PHP, Sie müssen nicht in 99% der Fälle werfen.
Padding getan werden könnte mit
sprintf("%04u", rand(0, 9999));
Erklärungen
das erste Argument von sprintf
gibt das Format
-
%
bleibt für den zweiten, dritten, vierten usw. Argument. der erste%
durch das zweite Argument, das zweite%
durch die dritten usw. ersetzt wird. -
0
bleibt für das Verhalten mit0
nach links zu füllen. -
4
bleibt für "Mindestens 4 Zeichen gedruckt werden sollen" -
u
bleibt für unsigned integer.
Andere Tipps
sprintf("%04d", rand(0,9999))
sollte das tun, was Sie wollen
quick and dirty ... wie wäre es tun:
rand(10000,19999)
und nehmen Sie die letzten vier Ziffern:
substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);
Mit mt_rand () anstelle von rand (), ist es besser.
Sie können mit str_pad () oder sprintf () Zeichenfolge formatiert werden:
$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);