سؤال

أحتاج عشوائية 4 أرقام

الآن ايم باستخدام راند(1000,9999) التي دائما يعطيني 4 أرقام ولكن لا يلغي 0000-0999 ممكن من النتائج.

كيف يمكنك لوحة رقم عشوائي?

(أيضا هذا هو في نهاية المطاف سوف تضاف إلى سلسلة لا أريد أن يلقي الباحث مثل سلسلة؟)

شكرا

هل كانت مفيدة؟

المحلول

في لغات البرمجة مثل PHP, لا يجب أن يلقي في 99% من الحالات.

الحشو يمكن أن يتم ذلك باستخدام

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

تفسيرات

الوسيطة الأولى sprintf يحدد شكل

  • % يبقى للمرة الثانية والثالثة والرابعة.... الخالحجة.أول % يستبدل الحجة الثانية الثانية % الثالث الخ.
  • 0 يبقى سلوك ملء مع 0 إلى اليسار.
  • 4 يبقى على "4 أحرف على الأقل يجب أن تكون مطبوعة"
  • u يبقى لمدة غير صحيح.

نصائح أخرى

sprintf("%04d", rand(0,9999))

ويجب أن تفعل ما تريد

وسريعة وقذرة ... ماذا عن القيام:

rand(10000,19999)

وواتخاذ الأرقام الأربعة الأخيرة:

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

استخدم mt_rand () بدلا من راند ()، فمن الأفضل.

ويمكنك استخدام str_pad () أو <وأ href = "http://php.net/sprintf "يختلط =" نوفولو noreferrer "> sprintf () لتهيئة سلسلة الخاص بك:

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top