array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

array_randBir diziden belli sayıda rasgele anahtar döndürür

Açıklama

array_rand(array $dizi, int $istek_sayısı = 1): int|string|array

array_rand() işlevi bir diziden belli sayıda rasgele eleman seçer ve bunların anahtarlarını döndürür.

Dikkat

Bu işlev kriptografik olarak güvenilir değerler üretmez ve kriptografik amaçlarla veya döndürülen değerlerin tahmin edilemez olmasını gerektiren amaçlarla kullanılmamalıdır.

Kriptografik olarak güvenilir rastgelelik gerekliyse Random\Randomizer sınıfı Random\Engine\Secure motoru ile kullanılabilir. Basit kullanım durumlarında random_int() ve random_bytes() işlevleri, işletim sisteminin CSPRNG’i tarafından desteklenen kullanışlı ve güvenli bir arayüz sağlar.

Bağımsız Değişkenler

dizi

İşleme sokulacak dizi. Boş olamaz.

istek_sayısı

Kaç tane rasgele eleman döndürüleceği belirtilir. Sıfırdan büyük ve dizi uzunluğundan küçük veya ona eşit olmalıdır.

Dönen Değerler

Sadece bir girdi alınmak istenirse array_rand() işlevi diziden rasgele bir anahtarla döner. Aksi takdirde, rasgele elemanların anahtarlarını içeren bir dizi döndürür. Böylece, diziden rasgele anahtarlar değerleriyle birlikte bir dizi olarak çekilmiş olur. Birden fazla anahtar döndürülüyorsa, bunlar dizideki yerlerine uygun sırada çekilir.

Hatalar/İstisnalar

dizi boşsa veya istek_sayısı aralık dışındaysa bir ValueError oluşur.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 istek_sayısı aralık dışındaysa artık bir ValueError oluşuyor. Evvelce bir E_WARNING yayımlanır ve işlev null döndürürdü.
8.0.0 dizi boşsa artık bir ValueError oluşuyor. Evvelce bir E_WARNING yayımlanır ve işlev null döndürürdü.
7.1.10 Dahili rasgelelik algoritması değiştirildi. Libc rand işlevi yerine artık » Mersenne Twister Rasgele Sayı Üreteci kullanılıyor.
4.2.0Rasgele sayı üreteci otomatik tohumlanır.

Örnekler

Örnek 1 - array_rand() örneği

<?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";
?>

Ayrıca Bakınız