'dan 3 farklı rasgele değer seç Bir dizi 30 değere sahibim ve bu diziden 3 farklı rasgele değer elde etmem gerekiyor. Nasıl yapabilirim?Bir dizi
Bir dizi
cevap
:
Not
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
PHP 5.2.10 itibariyle, siz (rastgele) karıştırmak isteyebilir, o
shuffle($rand_keys)
aracılığıyla döndürülen anahtarlar, aksi takdirde her zaman sırayla olurlar (ilk önce en küçük dizin). Yani, yukarıdaki örnekte, “Neo, Trinity” yi alabilirsiniz ama asla “Trinity, Neo”.
Rasgele öğelerin sırası önemli değilse, yukarıdaki kod yeterlidir.
kullanım shuffle($array)
sonra utanmadan PHP kılavuzunda çalınan array_rand($array,3)
'shuffle 'çağırmak için herhangi bir sebep? –
sadece realllllly rastgele olduğundan emin olmak için :) .. onun arkasındaki tarih array_rand kullanarak rastgele olmayan sonuçlar (ardışık çalışır benzer öğeleri) görüyordum, bu yüzden biraz daha rasgele yapmak için gerçektir Önce diziyi karıştırıp array_rand işlevine beslerdim ve daha rasgele değerler vermiş gibiydi. –
Hala tuşlardan değerlere ulaşmanız gerekiyor .... –
array_rand()
'un neden rahatsızlık duymadığından emin değilim. Bunun shuffle()
ve ilk üç elemanları dilim:
shuffle($array);
print_r(array_slice($array, 0, 3));
([bir dizi php rastgele değerler alt kümesi Al] arasında
Çok daha temiz, bu kabul edilmiş bir cevap olmalı –
olası yinelenen http://stackoverflow.com/questions/3504401/get-a-subset-of -random-değerleri-from-bir-dizi-php) – kennytm