Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menjana tatasusunan rawak dalam php
Dalam PHP, terdapat banyak cara untuk menjana tatasusunan secara rawak, antaranya menggunakan fungsi array_rand() mungkin salah satu kaedah yang paling mudah. Berikut akan memperkenalkan secara terperinci penggunaan fungsi array_rand() dan cara lain untuk menjana tatasusunan secara rawak.
1. Gunakan fungsi array_rand()
Fungsi array_rand() boleh mengembalikan satu atau lebih nama kunci rawak daripada tatasusunan. Oleh itu, kita perlu mencipta tatasusunan dahulu, dan kemudian gunakan fungsi array_rand() untuk memulangkan satu atau lebih nama kunci daripadanya secara rawak dan menggunakannya untuk mencipta tatasusunan baharu. Kod sampel adalah seperti berikut:
<?php $my_array = array("a" => "apple", "b" => "banana", "c" => "cherry", "d" => "durian"); $random_keys = array_rand($my_array, 2); // 随机返回2个键名 $random_array = array(); foreach ($random_keys as $key) { $random_array[$key] = $my_array[$key]; } print_r($random_array); ?>
Kod di atas mula-mula mencipta tatasusunan bersekutu $my_array yang mengandungi 4 elemen, dan kemudian menggunakan fungsi array_rand() untuk mengembalikan 2 nama kunci rawak. Kemudian, dengan merentasi nama kunci rawak, elemen yang sepadan disalin ke tatasusunan bersekutu baharu $random_array. Menjalankan kod di atas, anda mungkin mendapat output berikut:
Array ( [d] => durian [a] => apple )
2. Gunakan fungsi shuffle() dan fungsi array_slice()
Fungsi shuffle() boleh mengocok elemen secara rawak dalam array. Fungsi array_slice() boleh mengembalikan sebahagian daripada elemen dalam tatasusunan. Oleh itu, kita boleh mula-mula menggunakan fungsi shuffle() untuk mengacak tatasusunan asal, dan kemudian menggunakan fungsi array_slice() untuk mengembalikan sebahagian daripada elemen, dengan itu mendapatkan tatasusunan yang dijana secara rawak. Kod sampel adalah seperti berikut:
<?php $my_array = array("apple", "banana", "cherry", "durian"); shuffle($my_array); // 打乱原数组的顺序 $random_array = array_slice($my_array, 0, 2); // 返回前2个元素 print_r($random_array); ?>
Kod di atas mula-mula mencipta tatasusunan indeks $my_array yang mengandungi 4 elemen, dan kemudian menggunakan fungsi shuffle() untuk merombak susunannya. Akhir sekali, gunakan fungsi array_slice() untuk mengembalikan 2 elemen pertama dan dapatkan tatasusunan indeks yang dijana secara rawak $random_array. Menjalankan kod di atas, anda mungkin mendapat output berikut:
Array ( [0] => cherry [1] => apple )
3 Gunakan fungsi julat() dan fungsi shuffle()
fungsi julat() boleh menjana integer atau aksara berterusan. , dan Fungsi shuffle() boleh secara rawak mengocok elemen dalam tatasusunan. Oleh itu, mula-mula kita boleh menggunakan fungsi range() untuk menjana tatasusunan integer atau aksara yang berterusan, dan kemudian menggunakan fungsi shuffle() untuk mengganggu susunannya dan mendapatkan tatasusunan yang dijana secara rawak. Kod sampel adalah seperti berikut:
<?php $my_array = range(1, 10); // 生成1到10这10个连续整数 shuffle($my_array); // 打乱它们的顺序 $random_array = array_slice($my_array, 0, 3); // 返回前3个元素 print_r($random_array); ?>
Kod di atas menjana tatasusunan $my_array yang mengandungi 10 integer berturut-turut, kemudian mengocok susunannya, dan kemudian mengembalikan 3 elemen pertama untuk mendapatkan tatasusunan indeks yang dijana secara rawak $ random_array . Menjalankan kod di atas, anda mungkin mendapat output berikut:
Array ( [0] => 7 [1] => 5 [2] => 1 )
Ringkasan:
Tiga kaedah di atas boleh digunakan untuk menjana tatasusunan secara rawak, dan kaedah yang berbeza sesuai untuk senario yang berbeza. Fungsi array_rand() sesuai untuk memilih unsur secara rawak daripada tatasusunan bersekutu, fungsi shuffle() sesuai untuk merombak susunan tatasusunan sedia ada, dan fungsi julat() sesuai untuk menjana set integer berturut-turut atau situasi watak. Kaedah yang berbeza perlu dipilih bergantung pada situasi tertentu.
Atas ialah kandungan terperinci Bagaimana untuk menjana tatasusunan rawak dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!