Diziden Rastgele Veri Çekme (array_rand) :
Array_rand fonksiyonu kullanarak diziden rastgele veri çekebilmemiz mümkün. Üsttelik kaç tane veri çekebileceğimizi belirteme durumumuzda var.
Sözdizimi:
array_rand( dizi,sayı )
Dizi: Gereklidir. Bir dizi belirtilir.
Sayı: Diziden kaç tane veri çekebileceğimizi belirtir.
Dönen Değerler:
Sadece bir girdi almak istiyorsanız array_rand() işlevi diziden rasgele bir anahtarla döner. Aksi takdirde, rasgele elemanları içeren bir dizi döndürür. Böylece, diziden rasgele anahtarlar değerleriyle birlikte bir dizi olarak çekilmiş olur.
PHP’de bir dizi aslında sıralı bir eşlemdir. Bir eşlem, değerleri anahtarlarla ilişkilendiren bir veri türüdür. Bu veri türü farklı kullanım amaçları için en iyilenebilir; bir dizi, bir yöneysel liste, bir isim-değer çiftleri tablosu, bir sözlük, bir nesne listesi, yığıt, kuyruk ve daha bir sürü başka şey olarak ele alınabilir. Dizilerin değerleri, ağaçlar, diziler ve hatta çok boyutlu diziler bile olabilir.
Örnek
<?php $a=array("Mavi","siyah","beyaz","sarı","yeşil"); $random_keys=array_rand($a,1); echo "Dizi anahtarı...:."$random_keys; ?>
Tabiki rastgele dizi anahtarı çektiğimizden sizde sonuç farklı anahtar sayıları çıkabilir. Sonuçta gördüğümüz verinin kendisi değil anahtarıdır.
Dizilerde anahtar veri olarak sayı veya kelime gösterdiysek elde edeceğimiz sonuçta sayı veya kelime anahtarıdır.
Peki anahtar değil de diziden bir değer istiyorsak ne yapmalıyız?
Buraya kadar öğrendiklerimizle siz bu sorunu çözebilirsiniz. Dizinin anahtarı yerine veriyi ekrana yazdıralım.
<?php $a=array("Mavi","siyah","beyaz","sarı","yeşil" $anahtar = array_rand($a,1); echo "Dizi verisi..:".$a[$anahtar]; ?>
Diziden şimdide birden fazla veri çekelim.
<?php $a = array("Mavi","siyah","beyaz","sarı","yeşil"); $rand = array_rand($a, 3); foreach ($rand as $key => $value) { echo $a[$value]." "; } ?>
ÇIKTI:
Mavi
sarı
yeşil
Dizinin anahtarı harf veya kelime olanı örnek yapalım.
<?php $a = array("a"=>"Mavi","b"=>"siyah","c"=>"beyaz", "d"=>"sarı","e"=>"yeşil"); echo "Dizinin anahtarı..:".array_rand($a,1); ?>