Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memaparkan Elemen Secara Rawak tanpa Mengulanginya dalam Senarai?

Bagaimana untuk Memaparkan Elemen Secara Rawak tanpa Mengulanginya dalam Senarai?

Barbara Streisand
Barbara Streisandasal
2024-10-21 12:44:30994semak imbas

How to Randomly Display Elements without Repeating them in a List?

Menjana Penyenaraian Rawak Unik tanpa Ulangan

Merawak elemen tanpa pengulangan adalah masalah biasa dalam pengaturcaraan. Seperti yang anda temui, menggunakan fungsi rand() yang mudah mungkin tidak mencukupi untuk senario khusus anda, di mana anda perlu memaparkan semua elemen sekali sebelum ulangan berlaku.

Kaedah yang paling berkesan untuk masalah ini ialah menjana senarai semua nombor yang mungkin, kocokkannya untuk merawak susunan, dan kemudian gunakan nombor ini untuk mendapatkan penyenaraian yang diingini. Berikut ialah penyelesaian yang dioptimumkan:

<code class="php">$numbers = range(0, 19);
shuffle($numbers);</code>

Kod ini mencipta tatasusunan yang mengandungi nombor dari 0 hingga 19 dan mengocoknya untuk mendapatkan susunan rawak. Anda kemudiannya boleh mengulangi tatasusunan nombor dan mendapatkan semula penyenaraian yang sepadan daripada tatasusunan $businesses anda. Dengan menggunakan pendekatan ini, kesemua 20 penyenaraian akan ditunjukkan sekali sebelum penyenaraian diulang.

Alternatifnya ialah menggunakan fungsi tersuai:

<code class="php">function randomGen($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $quantity);
}</code>

Fungsi ini mengambil tiga parameter: minimum dan nilai maksimum, dan kuantiti nombor rawak yang dikehendaki. Ia menjana tatasusunan nombor rawak dalam julat yang diberikan dan mengembalikan bilangan elemen yang ditentukan.

Dalam kes anda, anda boleh menjana 20 nombor rawak unik dalam julat penyenaraian Yelp:

<code class="php">print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>

Untuk menyepadukan teknik ini dengan respons API Yelp anda, anda boleh melaksanakan kemas kini berikut:

  1. Jana ID penyenaraian rawak menggunakan salah satu kaedah yang dicadangkan dan simpannya dalam pangkalan data anda.
  2. Pada setiap muat semula halaman, jana ID penyenaraian rawak dan semak sama ada ia sepadan dengan nilai dalam pangkalan data anda.
  3. Jika ID tidak sepadan, paparkan penyenaraian dan tambahkan ID baharu pada pangkalan data anda.
  4. Ulang langkah 1-3 sehingga kesemua 20 penyenaraian telah dipaparkan.

Dengan melaksanakan pendekatan ini, anda akan memastikan bahawa kesemua 20 penyenaraian dipaparkan sekali sebelum sebarang pengulangan berlaku, memenuhi fungsi yang anda inginkan .

Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Elemen Secara Rawak tanpa Mengulanginya dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn