Bagaimana untuk mencipta tatasusunan rawak nombor tidak berulang dalam php

PHPz
Lepaskan: 2023-04-18 14:30:33
asal
774 orang telah melayarinya

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas yang digunakan secara meluas semasa membangunkan aplikasi web. Tugas biasa ialah mencipta tatasusunan rawak nombor tidak berulang. Artikel ini akan menunjukkan kepada anda cara membuat tatasusunan sedemikian menggunakan PHP.

Sebelum ini, anda perlu memahami tiga fungsi: rand(), array_push(), dan in_array(). Fungsi rand() digunakan untuk menjana nombor pseudo-rawak, fungsi array_push() digunakan untuk menambah elemen pada penghujung tatasusunan, dan fungsi in_array() digunakan untuk menyemak sama ada elemen itu sudah wujud dalam tatasusunan.

Berikut ialah dua cara untuk mencipta tatasusunan nombor rawak tidak berulang:

Kaedah 1: Gunakan gelung sementara dan fungsi in_array()

Pertama, cipta tatasusunan kosong untuk Memegang nombor yang dijana. Kemudian gunakan gelung sementara untuk menjana nombor dan menambah setiap nombor pada tatasusunan. Tetapi sebelum menambah nombor pada tatasusunan, semak sama ada ia sudah wujud dalam tatasusunan menggunakan fungsi in_array(). Jika nombor itu sudah wujud, gelung terus menjana nombor baharu sehingga nombor baharu ditemui.

Berikut ialah kod contoh untuk mencipta tatasusunan nombor rawak tidak berulang menggunakan gelung sementara dan fungsi in_array():

$numbers = array();
while (count($numbers) < 10) {
  $rand = rand(1, 20);
  if (!in_array($rand, $numbers)) {
    array_push($numbers, $rand);
  }
}
print_r($numbers);
Salin selepas log masuk

Dalam contoh ini, kami mencipta tatasusunan daripada 10 elemen. Dalam setiap gelung, kami menggunakan fungsi rand() untuk menjana nombor rawak pseudo antara 1-20 dan menggunakan fungsi in_array() untuk menyemak sama ada ia sudah wujud dalam tatasusunan. Jika tidak, kami menggunakan fungsi array_push() untuk menambah nombor pada penghujung tatasusunan. Apabila panjang tatasusunan mencapai 10, gelung ditamatkan dan kandungan tatasusunan dicetak.

Kaedah 2: Gunakan fungsi gelung for dan shuffle()

Kaedah kedua ialah menggunakan gelung for untuk menjana satu siri nombor dan menggunakan fungsi shuffle() untuk mengocoknya. Dalam contoh ini, kami menggunakan fungsi range() untuk menjana tatasusunan yang mengandungi siri nombor, dan kemudian menggunakan fungsi shuffle() untuk mengocok elemen dalam tatasusunan. Kaedah ini tidak memerlukan penggunaan fungsi in_array() kerana tiada nombor pendua dalam tatasusunan awal.

Berikut ialah contoh kod untuk menggunakan gelung for dan fungsi shuffle() untuk mencipta tatasusunan nombor rawak tidak berulang:

$numbers = range(1, 20);
shuffle($numbers);
$numbers = array_slice($numbers, 0, 10);
print_r($numbers);
Salin selepas log masuk

Dalam contoh ini, kami menggunakan range() berfungsi untuk menjana 1-20 tatasusunan nombor antara. Kemudian gunakan fungsi shuffle() untuk mengocok elemen dalam tatasusunan. Akhir sekali, kami menggunakan fungsi array_slice() untuk memilih 10 elemen pertama daripada tatasusunan sebagai tatasusunan nombor rawak tidak berulang dan mencetak kandungan tatasusunan.

Ringkasan

Artikel ini menunjukkan dua cara untuk mencipta tatasusunan rawak nombor tidak berulang menggunakan PHP. Kaedah pertama menggunakan fungsi in_array() dalam gelung sementara untuk menyemak sama ada nombor itu sudah wujud dalam tatasusunan dan menambah nombor bukan pendua pada tatasusunan. Kaedah kedua menggunakan gelung for untuk menjana satu siri nombor, kemudian menggunakan fungsi shuffle() untuk mengganggu susunan nombor dan pilih 10 elemen pertama daripada tatasusunan sebagai tatasusunan rawak nombor tidak berulang. Kedua-dua kaedah boleh mencapai tujuan menjana nombor unik secara rawak, dan kaedah mana yang hendak digunakan bergantung pada keutamaan peribadi anda dan keperluan permohonan anda.

Atas ialah kandungan terperinci Bagaimana untuk mencipta tatasusunan rawak nombor tidak berulang dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan