کد PHP : تولید اعداد تصادفی بدون تکرار در یک آرایه

- visibility ١٠ mode_comment

به نام خدا و با سلام خدمت دوستان عزیز،در این مطلب قصد دارم یه کد PHP معرفی کنم که مطمئنم در تولید اعداد تصادفی براتون مفید واقع میشه،برای قرعه کشی و این طور مسائل میتونه کمکتون کنه.

تابع تولید اعداد تصادفی بدون تکرار

یه تابع تعریف کردیم 3 تا ورودی داره min برای کمترین مقدار،max برای بشترین مقدار  و count برای تعداد اعداد تصادفی یعنی تابع از عدد min تا عدد max و به تعداد count برای ما عدد تصادفی برمیگردونه،اولش چک کردیم اگه تفاضل max-min از مقدار count کمتر بود هیچی برنگردونه(چون ورودی ها غیر مجاز هستن)،بعدش یه آرایه تعریف کردیم حالا یه حلقه تشکیل دادیم و از صفر تا مقدار count رو میشماره،داخل حلقه با تابع Rand یه عدد تصادفی بین min و max انتخاب کردیم.

نکته اش اینجاست که بعد از انتخاب عدد تصادفی با تابع in_array چک میکنیم این مقدار قبلا در داخل آرایه قرار نگرفته باشه،اگه گرفته باشه پس دوباره یه عدد تصادفی دیگه تولید میکنیم(این کار چک کردن در داخل یه حلقه while انجام میشه تا در نهایت عدد بدون تکرار تولید بشه)،و در نهایت هم عدد تولید شده رو در داخل آرایه قرار میدیم.

بعد از  تمام شدن حلقه for آرایه تولید شده رو برگشت میدیم.به هیمن سادگی شما یه آرایه از اعداد تصادفی بدون تکرار دارید.

موفق و پیروز باشید.

comment دیدگاه کاربران
حسین محمدی

چه کد بی نقصی نوشتید…
برنامه نویسها باید خلاقیت و زیرکی رو چاشنی کارشون قرار بدن که شما این کار رو به نحو احسن انجام دادید…
خیلی ممنون

jafar1374

سلام من مدتها بود دنبال همچین کدی بودم
میشه به این کد حروف هم اضافه کرد که کاملتر هم بشه و طبق ی برنامه ای کد تولید بشه که تکراری نباشه ؟
ممنون

کیوان علی محمدی

سلام بله میشه حروف رو هم بهش اضافه کرد،با یه حلقه دیگه میشه ترکیبی از حروف رو بدست آورد و با عدد ترکیب کرد و بعدشم در آرایه ذخیره کرد.

هادی

salam mamnoon.

رضا

راه حل ساده تر استفاده از تابع shuffle است.

علیرضا

سلام. من دانشم در مورد صفحات وب به صفر میل میکنه 🙂
نگاه کنید. من یک کد نیاز دارم که در صفحه تماس با مای سایت خودم قرار بدم. که این کد با هر بار رفرش شدن صفحه یک عدد رندوم به من بده.
نیازی نیست به تابع دیگه ای ارسال بشه.
نیازی نیست در جایی ثبت بشه.
فقط میخوام با هر بار لود شدن صفحه تو یک استایل شیک مثل یک مستطیل متریال، یک کد رو نشون بده و قبلش بنویسه کد رهگیری : XXXXXX

همین
میشه راهنماییم کنید؟

وحید صالحی

سلام دوست عزیز اینگونه سوالات رو در انجمن مطرح کنید دوستانی که بتونن حتما راهنماییتون میکنن…

javid

سلام دوستان میشه لطفا بگید چطور میتونیم از این تابع استفاده کنیم ؟؟

کیوان علی محمدی

در حایی که قراره اعداد تصادفی بدون تکرار تولید کنید فقط کافیه تابع رو با آرگومان های مناسب (min,max,count) فرخوانی کنید.

Farid Froozan

شرط بررسی رو اشتباه نوشتید ، باید اینطور باشه :
if(($max – $min)+1 < $count)

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.