Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan dalam PHP
Cara untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan dalam PHP
Dalam pembangunan PHP, kita sering menghadapi senario di mana kita perlu mendapatkan berbilang elemen secara rawak daripada tatasusunan. Contohnya, dalam pembangunan permainan, anda perlu memilih beberapa hadiah bertuah secara rawak, atau apabila memaparkan kandungan yang disyorkan secara rawak, anda perlu memilih beberapa secara rawak daripada set data dan memaparkannya kepada pengguna. Artikel ini akan memperkenalkan beberapa cara untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan dalam PHP, dan memberikan contoh kod yang sepadan.
Fungsi array_rand ialah fungsi terbina dalam PHP yang memilih elemen tatasusunan secara rawak Ia boleh digunakan untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan. Prototaip fungsi ini ialah:
array_rand bercampur ( array $array [, int $num = 1 ] )
Antaranya, $array ialah array dari mana elemen akan dipilih, $num ialah bilangan elemen untuk diperoleh secara rawak, dan lalai ialah 1. Nilai pulangan bagi fungsi ini ialah nama kunci yang dipilih secara rawak atau tatasusunan nama kunci.
Berikut ialah kod sampel yang menggunakan fungsi array_rand untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan:
<?php $fruits = array("apple", "banana", "orange", "grape", "kiwi"); $randomKeys = array_rand($fruits, 2); $randomFruits = array(); foreach ($randomKeys as $key) { $randomFruits[] = $fruits[$key]; } print_r($randomFruits); ?>
Dalam kod di atas, kami mentakrifkan tatasusunan $buah yang mengandungi 5 jenis buah. Kemudian, gunakan fungsi array_rand untuk memilih 2 elemen secara rawak daripada tatasusunan $fruits dan simpan elemen yang dipilih ke dalam tatasusunan $randomKeys. Seterusnya, kami menggunakan gelung foreach untuk melintasi tatasusunan $randomKeys dan menyimpan elemen yang dipilih ke dalam tatasusunan $randomFruits melalui nama kunci tatasusunan. Akhir sekali, gunakan fungsi print_r untuk mengeluarkan tatasusunan $randomFruits, iaitu dua buah yang diperoleh secara rawak.
Fungsi shuffle boleh mengisih tatasusunan secara rawak dan fungsi array_slice boleh mendapatkan hirisan panjang yang ditentukan daripada tatasusunan. Menggabungkan kedua-dua fungsi ini boleh mencapai kesan mendapatkan berbilang elemen secara rawak daripada tatasusunan. Berikut ialah kod sampel yang menggunakan fungsi shuffle dan fungsi array_slice untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan:
<?php $animals = array("dog", "cat", "rabbit", "turtle", "hamster"); shuffle($animals); $randomAnimals = array_slice($animals, 0, 3); print_r($randomAnimals); ?>
Dalam kod di atas, kami mentakrifkan tatasusunan $haiwan yang mengandungi 5 jenis haiwan. Kemudian, gunakan fungsi shuffle untuk mengisih tatasusunan $animals secara rawak, iaitu, mengocok elemen tatasusunan secara rawak. Seterusnya, gunakan fungsi array_slice untuk mendapatkan hirisan panjang 3 daripada tatasusunan $animals yang dikacau, dan simpan kepingan itu ke dalam tatasusunan $randomAnimals. Akhir sekali, gunakan fungsi print_r untuk mengeluarkan tatasusunan $randomAnimals, iaitu tiga haiwan yang diperoleh secara rawak.
Selain menggunakan fungsi terbina dalam, kami juga boleh menulis fungsi kami sendiri untuk mencapai fungsi mendapatkan berbilang elemen secara rawak daripada tatasusunan. Berikut ialah contoh kod yang menggunakan fungsi tersuai untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan:
<?php function getRandomArrayElements($arr, $num) { $count = count($arr); if ($num >= $count) { return $arr; } $keys = array_rand($arr, $num); $randomArr = array(); foreach ($keys as $key) { $randomArr[] = $arr[$key]; } return $randomArr; } $colors = array("red", "blue", "yellow", "green", "purple"); $randomColors = getRandomArrayElements($colors, 4); print_r($randomColors); ?>
Dalam kod di atas, kami mentakrifkan fungsi tersuai getRandomArrayElements, yang menerima dua parameter: $arr ialah elemen untuk memilih Tatasusunan , $num ialah bilangan elemen yang akan diperolehi secara rawak. Fungsi pertama mengira panjang tatasusunan $count Jika bilangan elemen yang diperolehi lebih besar daripada atau sama dengan panjang tatasusunan, keseluruhan tatasusunan dikembalikan secara langsung. Jika tidak, gunakan fungsi array_rand untuk memilih secara rawak nama kunci bagi elemen $num, dan kemudian dapatkan semula elemen yang sepadan daripada tatasusunan asal melalui nama kunci dan simpannya dalam tatasusunan $randomArr. Akhirnya, tatasusunan $randomArr dikembalikan, iaitu elemen yang diperoleh secara rawak.
Ringkasnya, artikel ini memperkenalkan tiga kaedah untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan dalam PHP dan memberikan contoh kod yang sepadan. Pembangun boleh memilih kaedah yang sesuai berdasarkan keperluan sebenar untuk melaksanakan fungsi mendapatkan berbilang elemen secara rawak daripada tatasusunan untuk memenuhi keperluan senario yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan berbilang elemen secara rawak daripada tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!