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

- 2 هفته پیش
توسط علی بیات آپدیت شد
سامان ( 1180 تجربه )
2 هفته پیش

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

علی بیات ( 41372 تجربه )
2 هفته پیش

@samanf33

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

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

$shuffled = $collection->shuffle();

$shuffled->all();
سامان ( 1180 تجربه )
2 هفته پیش

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

علی بیات ( 41372 تجربه )
2 هفته پیش

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

برای ارسال پاسخ باید وارد سایت شوید