$degerler = array("deger1" => 30, "deger3" => 50, "deger2" => 20);
şeklinde bir dizi yapısı üzerinden sıralamak isterseniz
arsort($degerler);
veya küçükten büyüğe
asort($degerler);
Mesajınız için teşekkür ederim.
<?php
$array = array();
$deger1 = "Değer 1";
$ihtimal1 = 5;
$deger2 = "Değer 2";
$ihtimal2 = 25;
$deger3 = "Değer 3";
$ihtimal3 = 20;
$deger4 = "Değer 4";
$ihtimal4 = 15;
$deger5 = "Değer 5";
$ihtimal5 = 35;
$toplamoran = 100;
$j = 1;
if ($j <= $toplamoran){
for ($i = 1; $i <= $ihtimal1; $i++){
$array[$j] = $deger1;
$j++;
};
for ($i = 1; $i <= $ihtimal2; $i++){
$array[$j] = $deger2;
$j++;
};
for ($i = 1; $i <= $ihtimal3; $i++){
$array[$j] = $deger3;
$j++;
};
for ($i = 1; $i <= $ihtimal4; $i++){
$array[$j] = $deger4;
$j++;
};
for ($i = 1; $i <= $ihtimal5; $i++){
$array[$j] = $deger5;
$j++;
};
}
shuffle($array); //dizideki değerleri rastgele sıralıyoruz
$rastgelesayi = rand(0,$toplamoran-1); // 0 ile toplam oran arasından rastgele bir sayı seçiyoruz
$secilenarray = $array[$rastgelesayi]; // rastgele sıralanmış dizideki rastgele belirlediğimiz değeri alıyoruz
echo "İhtimal oranına göre seçilen değer: ".$secilenarray;
?>
Mesajınız için teşekkür ederim. Sayenizde hallettim.
Sanırsam ihtimal adedi kadar array oluşturuyor ve arasından rastgele bir tanesini ekrana yazdırıyor. Doğal olarak en çok olan değerin seçilme ihtimali de yüksek oluyor. Doğru yorumladım mı acaba ?