Php ile birbirine eşit olmayan rastgele sayılar üretmek

Kategori: (Web Programlama) Yazan: admin, 19-03-2011

Etiketler :

Başlığımızdan da anlaşılacağı üzere php ile belli aralıkta random sayılar üreteceğiz ama işin en eğlenceli kısmı bu sayıların birbirine eşit olmaması. Bu tür uygulamalar basit gibi görünür fakat kodladığınız takdirde gerçekten size birçok şey kazandırır. Algoritma kurma mantığınızı geliştirir. Neden şimdi bunu yazıyorsun diye bir soru sorabilirsiniz. Bir programcı arkadaşımla girmiş olduğum iddia sonucu ortaya çıktı :) Kim daha kısa kodla yazabilir? Onu yenmiş olmanın mutluluğu ile bu basit 5 satır kodumu sizlere sunuyorum. Gelelim mantığa ve kodlarımıza.

Bizim sorumuz şuydu. 1 ile 10 arası 6 tane sayı tutmak ve bu sayıların hiçbirinin birbirine eşit olmamasıydı. Hemen soruya uygun yazalım.

Hemen kodlarımızı yayınlayalım ve üstünden mantığı anlatalım.

$sayilar = array();
$i = 1;
while($i < 7) {
$sayi = rand(1, 10);
if(!in_array($sayi, $sayilar)) { array_push($sayilar, $sayi); $i++; }
}

İşte bu kadar basit aslında :) . Satır sayısı daha da azaltılabilir fakat açık olsun diye bunu kullanmayı tercih ettim. Öncelikle sayilar adında dizi tanımlıyoruz. While döngüsü ile 6 adet sayı seçilince işlemin tamamlanmasını sağlıyoruz. Burda önemli 2 php fonksiyonu var. Bunlardan birisi in_array(). in_array($aranacak_degisken, $aranacak_dizi) şeklinde dizi içerinde verimizi aramamızı sağlıyor. İkinci fonksiyonumuz ise array_push(). array_pust($dizi_adimiz, $eklenecek_verimiz) şeklinde dizimize istediğimiz veriyi eklemizi sağlar.

Ekrana yazdırmak içinde,

foreach($sayilar as $sayi) echo $sayi .”, “;

kullanarak yazdırabilirsiniz. İşlem aslında bu kadar basit. Bu şekilde problemleriniz varsa yorum olarak gönderin, çözmeyi severim :) . Teşekkür ederim.

Yorumlar:

Php ile birbirine eşit olmayan rastgele sayılar üretmek yazısına Bir Yorum ”


  1. Teşekkür ederim. Gerekli oldu ve direk açıklamayı buldum. Emeğinize sağlık… Bilgi paylaşılmalı emeğe saygı duyulmalı ve emek hırsızlığı önlenmelidir. Saygılarımla…

Yorum Yazın

16 + 2 = ? (İşleminin Sonucu)