basit rand () soru

5 Cevap php

Ben rastgele bir 4 haneli bir sayı gerekiyor

hemen her zaman bana bir 4 haneli bir numara verir ama mümkün sonuçları olarak 0000-0999 ortadan kaldırır rand (1000,9999) kullanarak im.

size nasıl pedi rastgele bir sayı mı?

(Ayrıca bu sonuçta ben bir dize olarak int döküm gerekiyor bir dize ilave olacak?)

teşekkürler

5 Cevap

PHP gibi betik dilleri olarak, olguların% 99 döküm gerekmez.

Dolgu kullanılarak yapılabilir

sprintf("%04u", rand(0, 9999));

Explanations

sprintf ilk argüman biçimini belirtir

  • %, vb ikinci, üçüncü, dördüncü argüman için kalır. ilk %, üçüncü vs ile ikinci argüman, ikinci % yerini alır
  • 0 sola 0 ile doldurma davranış kalır.
  • 4 "En az 4 karakter basılmış olmalıdır" için kalır
  • u işaretsiz tamsayı için kalır.
sprintf("%04d", rand(0,9999))

Ne istediğinizi yapmalıyım

Hızlı ve kirli ... nasıl yapıyor hakkında:

rand(10000,19999)

ve son dört hanesini alır:

substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

Yerine rand mt_rand () () kullanın, daha iyi olur.

Sen str_pad() kullanabilir veya sprintf() sizin dize biçimlendirmek için:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);