سامان
6 سال پیش توسط سامان مطرح شد
3 پاسخ

رندوم کردن ترتیب عناصر یک آرایه

سلام . من یک آرایه ای دارم که مثلا 5 تا عضو {a,b,c,d,e,f} در آن بترتیب قرا گرفتن . میخواستم با یک دستور ترتیب این عناصر را بصورت تصادفی بهم بریزم . یعنی با اجرای یک دستور آرایه من بشه {d,e,a,b,c} یعنی اندیس عناصر بصورت تصادفی بهم بریزه . سرچ کردم دیدم در PHP دستور shuffle را داریم که متاسفانه در لاراول کار نمیکنه . در خود لاراول یه دستور array_rand و array_random هستن که ظاهرا در لاراول 5.2 که من باهاش کار میکنم , کار نمیکنن . دوستان میتونید من رو راهنمائی کنید ؟ ممنون


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

@samanf33

از Collection لاراول استفاده کنید. مقدار رو هم بصورت آرایه بر میگردونه. در لاراول ۵.۲ هم موجوده:

$collection = collect([1, 2, 3, 4, 5]);

$shuffled = $collection->shuffle();

$shuffled->all();

سامان
@samanf33 6 سال پیش مطرح شد
0

بسیار ممنون از شما . یه سوال دیگه . دستوری هست که با هر بار اجرا اندیسهای آرایه رو یکی جلو ببره ؟( مثل حالت دایره ای ) یعنی یکبار که اجرا شد , عنصر اول که اندیسش صفر هست بشه یک , عنصر دوم اندیسش بشه دو و همینطور تا آخرین عنصر که اندیسش بشه صفر
. آیا دستوری داریم که اینکار رو بکنه ؟ یا باید برنامه شو خودمون بنویسیم؟ بازم تشکر


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
1

میتونید یه تابع بنویسید که این کارو انجام بده. خیلی راحت از foreach استفاده کنید. یه آرایه جدید بوجود بیارید و اون رو برگردونید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام